From 29015c5877876df28890209d2ad341c6cabd1cc8 Mon Sep 17 00:00:00 2001 From: Josh Chen Date: Wed, 30 May 2018 10:46:48 +0200 Subject: Fixed dependent product rules, hopefully final now. --- HoTT.thy | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'HoTT.thy') diff --git a/HoTT.thy b/HoTT.thy index 96bd3c1..cf21304 100644 --- a/HoTT.thy +++ b/HoTT.thy @@ -70,11 +70,10 @@ axiomatization appl :: "[Term, Term] \ Term" (infixl "`" 60) where Prod_form: "\(A::Term) (B::Term \ Term). \A : U; B : A \ U\ \ \x:A. B(x) : U" and - Prod_intro [intro]: "\(A::Term) (B::Term \ Term) (b::Term \ Term). \A : U; B : A \ U; \x::Term. x : A \ b(x) : B(x)\ \ \<^bold>\x:A. b(x) : \x:A. B(x)" and + Prod_intro [intro]: "\(A::Term) (B::Term \ Term) (b::Term \ Term). (\x::Term. x : A \ b(x) : B(x)) \ \<^bold>\x:A. b(x) : \x:A. B(x)" and Prod_elim [elim]: "\(A::Term) (B::Term \ Term) (f::Term) (a::Term). \f : \x:A. B(x); a : A\ \ f`a : B(a)" and - Prod_comp [simp]: "\(A::Term) (B::Term \ Term) (b::Term \ Term) (a::Term). \A : U; B : A \ U; \x::Term. x : A \ b(x) : B(x); a : A\ \ (\<^bold>\x:A. b(x))`a \ b(a)" and + Prod_comp [simp]: "\(A::Term) (B::Term \ Term) (b::Term \ Term) (a::Term). \\x::Term. x : A \ b(x) : B(x); a : A\ \ (\<^bold>\x:A. b(x))`a \ b(a)" and Prod_uniq [simp]: "\(A::Term) (B::Term \ Term) (f::Term). f : \x:A. B(x) \ \<^bold>\x:A. (f`x) \ f" -(* Thinking about the premises for the computation rule... they make simplification rather cumbersome, should I remove them? Would this potentially result in logical problems with being able to state untrue statements? (But probably not prove them?) *) text "Note that the syntax \\<^bold>\\ (bold lambda) used for dependent functions clashes with the proof term syntax (cf. \
2.5.2 of the Isabelle/Isar Implementation)." -- cgit v1.2.3