This file proves properties of the footprints function in Cedar/SymCC/Enforcer.lean. #
def
Cedar.SymCC.footprint_ofEntity_wf
{x : Spec.Expr}
{εnv : SymEnv}
:
(footprint.ofEntity x εnv).WellFormed
Equations
- ⋯ = ⋯
Instances For
def
Cedar.SymCC.footprint_ofBranch_wf
{εnv : SymEnv}
{x : Spec.Expr}
{ft₁ ft₂ ft₃ : Data.Set Term}
:
ft₂.WellFormed → ft₃.WellFormed → (footprint.ofBranch εnv x ft₁ ft₂ ft₃).WellFormed
Equations
- ⋯ = ⋯
Instances For
Equations
- ⋯ = ⋯
Instances For
Equations
- ⋯ = ⋯
Instances For
def
Cedar.SymCC.SymEntities.SameOn
(εs : SymEntities)
(ft : Data.Set Term)
(I₁ I₂ : Interpretation)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- εnv.SameOn ft I₁ I₂ = (Cedar.SymCC.SymRequest.interpret I₁ εnv.request = Cedar.SymCC.SymRequest.interpret I₂ εnv.request ∧ εnv.entities.SameOn ft I₁ I₂)
Instances For
theorem
Cedar.Thm.mem_footprint_option_entity
{x : Spec.Expr}
{εnv : SymCC.SymEnv}
{t : SymCC.Term}
:
t ∈ SymCC.footprint x εnv → ∃ (ety : Spec.EntityType), t.typeOf = (SymCC.TermType.entity ety).option
theorem
Cedar.Thm.mem_footprint_exists_wf
{x : Spec.Expr}
{tₑ : SymCC.Term}
{env : Spec.Env}
{εnv : SymCC.SymEnv}
:
εnv.WellFormedFor x →
env.WellFormedFor x →
tₑ ∈ SymCC.footprint x εnv →
∃ (xₑ : Spec.Expr), εnv.WellFormedFor xₑ ∧ env.WellFormedFor xₑ ∧ SymCC.compile xₑ εnv = Except.ok tₑ
theorem
Cedar.Thm.mem_footprint_compile_exists_swf
{x : Spec.Expr}
{tₑ : SymCC.Term}
{env : Spec.Env}
{εnv : SymCC.SymEnv}
:
εnv.StronglyWellFormedFor x →
env.StronglyWellFormedFor x →
tₑ ∈ SymCC.footprint x εnv →
∃ (xₑ : Spec.Expr), εnv.StronglyWellFormedFor xₑ ∧ env.StronglyWellFormedFor xₑ ∧ SymCC.compile xₑ εnv = Except.ok tₑ
theorem
Cedar.Thm.mem_footprint_wf
{x : Spec.Expr}
{tₑ : SymCC.Term}
{εnv : SymCC.SymEnv}
:
εnv.WellFormedFor x → tₑ ∈ SymCC.footprint x εnv → SymCC.Term.WellFormed εnv.entities tₑ
theorem
Cedar.Thm.mem_footprints_wf
{xs : List Spec.Expr}
{t : SymCC.Term}
{εnv : SymCC.SymEnv}
(hwε : εnv.WellFormed)
(hvr : ∀ (x : Spec.Expr), x ∈ xs → εnv.entities.ValidRefsFor x)
(hin : t ∈ SymCC.footprints xs εnv)
:
theorem
Cedar.Thm.footprint_subset_footprints
{x : Spec.Expr}
{xs : List Spec.Expr}
{εnv : SymCC.SymEnv}
:
x ∈ xs → SymCC.footprint x εnv ⊆ SymCC.footprints xs εnv