Documentation

Cedar.Thm.SymCC.Compiler.Record

This file proves the compilation lemmas for .record expressions. #

theorem Cedar.Thm.compile_attr_expr_wfs {εnv : SymCC.SymEnv} {axs : List (Spec.Attr × Spec.Expr)} {ats : List (Spec.Attr × SymCC.Term)} (hwε : ∀ (ax : Spec.Attr × Spec.Expr), ax axsεnv.WellFormedFor ax.snd) (hok : List.Forall₂ (fun (px : Spec.Attr × Spec.Expr) (pt : Spec.Attr × SymCC.Term) => px.fst = pt.fst SymCC.compile px.snd εnv = Except.ok pt.snd) axs ats) (a : Spec.Attr) (t : SymCC.Term) :
theorem Cedar.Thm.prod_map_id_comp_eq {β : Type u_1} {α : Type u_2} {f g : ββ} :
theorem Cedar.Thm.compile_evaluate_record {axs : List (Spec.Attr × Spec.Expr)} {env : Spec.Env} {εnv : SymCC.SymEnv} {t : SymCC.Term} (heq : env εnv) (hwe : env.WellFormedFor (Spec.Expr.record axs)) (hwε : εnv.WellFormedFor (Spec.Expr.record axs)) (hok : SymCC.compile (Spec.Expr.record axs) εnv = Except.ok t) (ih : ∀ (a : Spec.Attr) (x : Spec.Expr), (a, x) axsCompileEvaluate x) :