expr term: remove explicit variable-type from expr_let

This commit is contained in:
Michael Sippel 2024-09-08 14:48:36 +02:00
parent bf7846294f
commit c3d1649402
Signed by: senvas
GPG key ID: F96CF119C34B64A6
3 changed files with 4 additions and 10 deletions

View file

@ -55,12 +55,7 @@ Definition bb_succ : expr_term :=
(expr_var "z")))))))). (expr_var "z")))))))).
Definition e1 : expr_term := Definition e1 : expr_term :=
(expr_let "bb-zero" (type_ladder (type_id "") (expr_let "bb-zero" bb_zero
(type_ladder (type_id "BBNat")
(type_univ "α"
(type_fun (type_fun (type_var "α") (type_var "α"))
(type_fun (type_var "α") (type_var "α"))))))
bb_zero
(expr_app (expr_app (expr_var "+") (expr_var "bb-zero")) (expr_var "bb-zero")) (expr_app (expr_app (expr_var "+") (expr_var "bb-zero")) (expr_var "bb-zero"))
). ).

View file

@ -115,7 +115,7 @@ Fixpoint expr_subst (v:string) (n:expr_term) (e0:expr_term) :=
| expr_abs x t e => if (eqb v x) then e0 else expr_abs x t (expr_subst v n e) | expr_abs x t e => if (eqb v x) then e0 else expr_abs x t (expr_subst v n e)
| expr_morph x t e => if (eqb v x) then e0 else expr_morph x t (expr_subst v n e) | expr_morph x t e => if (eqb v x) then e0 else expr_morph x t (expr_subst v n e)
| expr_app e a => expr_app (expr_subst v n e) (expr_subst v n a) | expr_app e a => expr_app (expr_subst v n e) (expr_subst v n a)
| expr_let x t a e => expr_let x t (expr_subst v n a) (expr_subst v n e) | expr_let x a e => expr_let x (expr_subst v n a) (expr_subst v n e)
| expr_ascend t e => expr_ascend t (expr_subst v n e) | expr_ascend t e => expr_ascend t (expr_subst v n e)
| expr_descend t e => expr_descend t (expr_subst v n e) | expr_descend t e => expr_descend t (expr_subst v n e)
end. end.

View file

@ -25,12 +25,11 @@ Inductive expr_term : Type :=
| expr_abs : string -> type_term -> expr_term -> expr_term | expr_abs : string -> type_term -> expr_term -> expr_term
| expr_morph : string -> type_term -> expr_term -> expr_term | expr_morph : string -> type_term -> expr_term -> expr_term
| expr_app : expr_term -> expr_term -> expr_term | expr_app : expr_term -> expr_term -> expr_term
| expr_let : string -> type_term -> expr_term -> expr_term -> expr_term | expr_let : string -> expr_term -> expr_term -> expr_term
| expr_ascend : type_term -> expr_term -> expr_term | expr_ascend : type_term -> expr_term -> expr_term
| expr_descend : type_term -> expr_term -> expr_term | expr_descend : type_term -> expr_term -> expr_term
. .
(* TODO (* TODO
Inductive type_DeBruijn : Type := Inductive type_DeBruijn : Type :=