Documentation

Cedar.Thm.SymCC.Compiler.Args

This file contains utility lemmas for proving compilation theorems about lists of argument terms. #

theorem Cedar.Thm.compile_wfs {xs : List Spec.Expr} {εnv : SymCC.SymEnv} {ts : List SymCC.Term} (hwφ : ∀ (x : Spec.Expr), x xsεnv.WellFormedFor x) (hok : List.Forall₂ (fun (x : Spec.Expr) (t : SymCC.Term) => SymCC.compile x εnv = Except.ok t) xs ts) (t : SymCC.Term) :
theorem Cedar.Thm.compile_interpret_ihs {xs : List Spec.Expr} {εnv : SymCC.SymEnv} {I : SymCC.Interpretation} {ts : List SymCC.Term} (hI : I.WellFormed εnv.entities) (hwε : ∀ (x : Spec.Expr), x xsεnv.WellFormedFor x) (ih : ∀ (x : Spec.Expr), x xsCompileInterpret x) (hok : List.Forall₂ (fun (x : Spec.Expr) (t : SymCC.Term) => SymCC.compile x εnv = Except.ok t) xs ts) :
theorem Cedar.Thm.compile_evaluate_ihs {ts : List SymCC.Term} {xs : List Spec.Expr} {env : Spec.Env} {εnv : SymCC.SymEnv} (heq : env εnv) (hwe : ∀ (x : Spec.Expr), x xsenv.WellFormedFor x) (hwε : ∀ (x : Spec.Expr), x xsεnv.WellFormedFor x) (ih : ∀ (x : Spec.Expr), x xsCompileEvaluate x) (hok : List.Forall₂ (fun (x : Spec.Expr) (t : SymCC.Term) => SymCC.compile x εnv = Except.ok t) xs ts) :
List.Forall₂ (fun (x : Spec.Expr) (t : SymCC.Term) => Spec.evaluate x env.request env.entities t) xs ts