Documentation

Cedar.Thm.Validation.Typechecker.WF

Either a non-action entity type in env.ets, or an action entity type in env.acts.

Equations
Instances For
    Instances For

      Defines when a CedarType is well-formed in an TypeEnv.

      Instances For
        Instances For

          Defines when a CedarType does not have any singleton Bool types.

          Instances For
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                theorem Cedar.Validation.EntitySchemaEntry.tags?_eq {entry : EntitySchemaEntry} :
                entry.tags? = match entry with | standard ty => ty.tags | enum eids => none
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        theorem Cedar.Validation.CedarType.WellFormed.mono {env₁ env₂ : TypeEnv} (hety : ∀ (ety : Spec.EntityType), EntityType.WellFormed env₁ ety → EntityType.WellFormed env₂ ety) {ty : CedarType} (h : WellFormed env₁ ty) :
                        WellFormed env₂ ty

                        A type stays well-formed in an environment that has every entity type of the original.

                        The empty record type is well-formed.

                        theorem Cedar.Validation.standardEntry_wf {env : TypeEnv} {ancestors : Data.Set Spec.EntityType} {attrs : RecordType} (hwf : ancestors.WellFormed) (hdeclared : ∀ (a : Spec.EntityType), a ∈ ancestors → ∃ (entry : EntitySchemaEntry), Data.Map.find? env.ets a = some entry) (hattrs : CedarType.WellFormed env (CedarType.record attrs)) (hlifted : (CedarType.record attrs).IsLifted) :
                        EntitySchemaEntry.WellFormed env (EntitySchemaEntry.standard { ancestors := ancestors, attrs := attrs, tags := none })

                        A standard entity type without tags is well-formed when its ancestors and attributes are.

                        theorem Cedar.Validation.wf_env_implies_wf_attrs {env : TypeEnv} {ety : Spec.EntityType} {attrs : RecordType} (hwf : env.WellFormed) (hattrs : env.ets.attrs? ety = some attrs) :
                        theorem Cedar.Validation.wf_env_implies_attrs_lifted {env : TypeEnv} {ety : Spec.EntityType} {attrs : RecordType} (hwf : env.WellFormed) (hattrs : env.ets.attrs? ety = some attrs) :
                        theorem Cedar.Validation.wf_env_disjoint_ets_acts {env : TypeEnv} {uid : Spec.EntityUID} {ets_entry : EntitySchemaEntry} {acts_entry : ActionSchemaEntry} (hwf : env.WellFormed) (hets : Data.Map.find? env.ets uid.ty = some ets_entry) (hacts : Data.Map.find? env.acts uid = some acts_entry) :

                        More well-formedness properties of env.reqty.

                        theorem Cedar.Validation.wf_env_implies_wf_action_entity_ancestor {env : TypeEnv} {uid anc : Spec.EntityUID} {entry : ActionSchemaEntry} (hwf : env.WellFormed) (hfind : Data.Map.find? env.acts uid = some entry) (hanc : anc ∈ entry.ancestors) :

                        Ancestor of an action entity should also be an action entity

                        theorem Cedar.Validation.wf_env_implies_wf_ancestor {env : TypeEnv} {entry : EntitySchemaEntry} {ety anc : Spec.EntityType} (hwf : env.WellFormed) (hfind : Data.Map.find? env.ets ety = some entry) (hanc : anc ∈ entry.ancestors) :
                        theorem Cedar.Validation.wf_env_implies_ancestors_of_action_is_action {env : TypeEnv} {uid : Spec.EntityUID} {entry : ActionSchemaEntry} (hwf : env.WellFormed) (hfind : Data.Map.find? env.acts uid = some entry) (uid✝ : Spec.EntityUID) :
                        uid✝ ∈ entry.ancestors → env.acts.contains uid✝ = true
                        theorem Cedar.Validation.TypeEnv.maps_wf_of_eq {env₁ env₂ : TypeEnv} (hets : env₁.ets = env₂.ets) (hacts : env₁.acts = env₂.acts) (h : EntitySchema.WellFormed env₁ env₁.ets ∧ ActionSchema.WellFormed env₁ env₁.acts) :

                        Whether an environment's maps are well-formed does not depend on its request type.