From 1be12499f63119d9455e2baa917659806732ca7d Mon Sep 17 00:00:00 2001 From: Josh Chen Date: Thu, 12 Jul 2018 01:46:30 +0200 Subject: Unit and Null types. Methods. --- scratch.thy | 50 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 34 insertions(+), 16 deletions(-) (limited to 'scratch.thy') diff --git a/scratch.thy b/scratch.thy index 3f66083..ae1bdb5 100644 --- a/scratch.thy +++ b/scratch.thy @@ -3,10 +3,11 @@ theory scratch begin -term "UN" - (* Typechecking *) -schematic_goal "\a : A; b : B\ \ (a,b) : ?A" +schematic_goal "\A : U(i); B : U(i); a : A; b : B\ \ (a,b) : ?A" + by derive + +lemma "\ : U(S S S 0)" by derive @@ -24,13 +25,13 @@ have "f`a`b`c \ d" by (simplify lems: asm) end -lemma "a : A \ indEqual[A] (\x y _. y =\<^sub>A x) (\x. refl(x)) a a refl(a) \ refl(a)" +lemma "\A : U(i); a : A\ \ indEqual[A] (\x y _. y =\<^sub>A x) (\x. refl(x)) a a refl(a) \ refl(a)" by simplify lemma "\a : A; \x. x : A \ b x : X\ \ (\<^bold>\x:A. b x)`a \ b a" by simplify -schematic_goal "\a : A; \x. x : A \ b x : X\ \ (\<^bold>\x:A. b x)`a \ ?x" +schematic_goal "\a : A; b: A \ X\ \ (\<^bold>\x:A. b x)`a \ ?x" by rsimplify lemma @@ -38,7 +39,7 @@ lemma shows "(\<^bold>\x:A. b x)`a \ b a" by (simplify lems: assms) -lemma "\a : A; b : B a; B: A \ U; \x y. \x : A; y : B x\ \ c x y : D x y\ +lemma "\a : A; b : B a; B: A \ U(i); \x y. \x : A; y : B x\ \ c x y : D x y\ \ (\<^bold>\x:A. \<^bold>\y:B x. c x y)`a`b \ c a b" by (simplify) @@ -53,7 +54,6 @@ lemma assumes "a : A" "b : B a" - "B: A \ U" "\x y. \x : A; y : B x\ \ c x y : D x y" shows "(\<^bold>\x:A. \<^bold>\y:B x. c x y)`a`b \ c a b" by (simplify lems: assms) @@ -63,19 +63,20 @@ assumes "a : A" "b : B a" "c : C a b" - "B: A \ U" - "\x. x : A\ C x: B x \ U" "\x y z. \x : A; y : B x; z : C x y\ \ d x y z : D x y z" shows "(\<^bold>\x:A. \<^bold>\y:B x. \<^bold>\z:C x y. d x y z)`a`b`c \ d a b c" by (simplify lems: assms) +(* Polymorphic identity function *) + +definition Id :: "Numeral \ Term" where "Id n \ \<^bold>\A:U(n). \<^bold>\x:A. x" + +lemma assumes "A : U 0" and "x:A" shows "(Id 0)`A`x \ x" unfolding Id_def by (simplify lems: assms) -(* HERE IS HOW WE ATTEMPT TO DO PATH INDUCTION --- VERY GOOD CANDIDATE FOR THESIS SECTION *) -schematic_goal "\A : U; x : A; y : A\ \ ?x : x =\<^sub>A y \ y =\<^sub>A x" +(* See if we can find path inverse *) +schematic_goal "\A : U(i); x : A; y : A\ \ ?x : x =\<^sub>A y \ y =\<^sub>A x" apply (rule Prod_intro) - apply (rule Equal_form) - apply assumption+ apply (rule Equal_elim) back back @@ -84,9 +85,26 @@ schematic_goal "\A : U; x : A; y : A\ \ ?x : x = back back back - back back back back back back - -thm comp + defer + back + back + back + back + back + back + back + back + back + apply (rule Equal_form) + apply assumption+ + defer + defer + apply assumption + defer + defer + apply (rule Equal_intro) + apply assumption+ +oops end \ No newline at end of file -- cgit v1.2.3