From 7a89ec1e72f61179767c6488177c6d12e69388c5 Mon Sep 17 00:00:00 2001 From: Josh Chen Date: Sun, 12 Aug 2018 13:04:16 +0200 Subject: Commit before testing polymorphic equality eliminator --- Sum.thy | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) (limited to 'Sum.thy') diff --git a/Sum.thy b/Sum.thy index cdfe5bd..eddb464 100644 --- a/Sum.thy +++ b/Sum.thy @@ -14,7 +14,7 @@ section \Constants and syntax\ axiomatization Sum :: "[Term, Typefam] \ Term" and - pair :: "[Term, Term] \ Term" ("(1'(_,/ _'))") and + pair :: "[Term, Term] \ Term" ("(1<_,/ _>)") and indSum :: "[[Term, Term] \ Term, Term] \ Term" ("(1ind\<^sub>\)") syntax @@ -34,34 +34,33 @@ abbreviation Pair :: "[Term, Term] \ Term" (infixr "\" 50) section \Type rules\ axiomatization where - Sum_form: "\i A B. \A: U(i); B: A \ U(i)\ \ \x:A. B(x): U(i)" + Sum_form: "\A: U(i); B: A \ U(i)\ \ \x:A. B(x): U(i)" and - Sum_intro: "\i A B a b. \A: U(i); B: A \ U(i); a: A; b: B(a)\ \ (a,b) : \x:A. B(x)" + Sum_intro: "\B: A \ U(i); a: A; b: B(a)\ \ : \x:A. B(x)" and - Sum_elim: "\i A B C f p. \ + Sum_elim: "\ C: \x:A. B(x) \ U(i); - \x y. \x: A; y: B(x)\ \ f(x)(y) : C((x,y)); + \x y. \x: A; y: B(x)\ \ f(x)(y) : C(); p : \x:A. B(x) \ \ ind\<^sub>\(f)(p) : C(p)" (* What does writing \x y. f(x, y) change? *) and - Sum_comp: "\i A B C f a b. \ - A: U(i); - B: A \ U(i); + Sum_comp: "\ C: \x:A. B(x) \ U(i); - \x y. \x: A; y :B(x)\ \ f(x)(y) : C((x,y)); + B: A \ U(i); + \x y. \x: A; y: B(x)\ \ f(x)(y) : C(); a: A; b: B(a) - \ \ ind\<^sub>\(f)((a,b)) \ f(a)(b)" + \ \ ind\<^sub>\(f)() \ f(a)(b)" text "Admissible inference rules for sum formation:" axiomatization where - Sum_form_cond1: "\i A B. (\x:A. B(x): U(i)) \ A: U(i)" + Sum_form_cond1: "(\x:A. B(x): U(i)) \ A: U(i)" and - Sum_form_cond2: "\i A B. (\x:A. B(x): U(i)) \ B: A \ U(i)" + Sum_form_cond2: "(\x:A. B(x): U(i)) \ B: A \ U(i)" lemmas Sum_rules [intro] = Sum_form Sum_intro Sum_elim Sum_comp -lemmas Sum_form_conds [intro (*elim, wellform*)] = Sum_form_cond1 Sum_form_cond2 +lemmas Sum_forms = Sum_form Sum_form_cond1 Sum_form_cond2 lemmas Sum_comps [comp] = Sum_comp @@ -73,7 +72,7 @@ axiomatization where Empty_form: "\ : U(O)" and - Empty_elim: "\i C z. \C: \ \ U(i); z: \\ \ ind\<^sub>\(z): C(z)" + Empty_elim: "\C: \ \ U(i); z: \\ \ ind\<^sub>\(z): C(z)" lemmas Empty_rules [intro] = Empty_form Empty_elim -- cgit v1.2.3