diff options
| author | Josh Chen | 2018-08-18 21:28:21 +0200 | 
|---|---|---|
| committer | Josh Chen | 2018-08-18 21:28:21 +0200 | 
| commit | e1be5f97bb2a42b3179bc24b118d69af137f8e5d (patch) | |
| tree | 37fa2dacc40261bf37726e23121df0ba5b9af68e /Equal.thy | |
| parent | 03c734ea067bd28210530d862137133e2215ca80 (diff) | |
Regrouping type rules
Diffstat (limited to '')
| -rw-r--r-- | Equal.thy | 28 | 
1 files changed, 13 insertions, 15 deletions
| @@ -1,8 +1,7 @@  (*  Title:  HoTT/Equal.thy      Author: Josh Chen -    Date:   Jun 2018 -Equality type. +Equality type  *)  theory Equal @@ -33,36 +32,35 @@ and    Equal_intro: "a : A \<Longrightarrow> refl(a): a =\<^sub>A a"  and    Equal_elim: "\<lbrakk> -    \<And>x y. \<lbrakk>x: A; y: A\<rbrakk> \<Longrightarrow> C(x)(y): x =\<^sub>A y \<longrightarrow> U(i); -    \<And>x. x: A \<Longrightarrow> f(x) : C(x)(x)(refl x);      x: A;      y: A; -    p: x =\<^sub>A y +    p: x =\<^sub>A y; +    \<And>x. x: A \<Longrightarrow> f(x) : C(x)(x)(refl x); +    \<And>x y. \<lbrakk>x: A; y: A\<rbrakk> \<Longrightarrow> C(x)(y): x =\<^sub>A y \<longrightarrow> U(i)      \<rbrakk> \<Longrightarrow> ind\<^sub>=(f)(p) : C(x)(y)(p)"  and    Equal_comp: "\<lbrakk> -    \<And>x y. \<lbrakk>x: A; y: A\<rbrakk> \<Longrightarrow> C(x)(y): x =\<^sub>A y \<longrightarrow> U(i); +    a: A;      \<And>x. x: A \<Longrightarrow> f(x) : C(x)(x)(refl x); -    a: A +    \<And>x y. \<lbrakk>x: A; y: A\<rbrakk> \<Longrightarrow> C(x)(y): x =\<^sub>A y \<longrightarrow> U(i)      \<rbrakk> \<Longrightarrow> ind\<^sub>=(f)(refl(a)) \<equiv> f(a)"  text "Admissible inference rules for equality type formation:"  axiomatization where -  Equal_form_cond1: "a =\<^sub>A b: U(i) \<Longrightarrow> A: U(i)" +  Equal_wellform1: "a =\<^sub>A b: U(i) \<Longrightarrow> A: U(i)"  and -  Equal_form_cond2: "a =\<^sub>A b: U(i) \<Longrightarrow> a: A" +  Equal_wellform2: "a =\<^sub>A b: U(i) \<Longrightarrow> a: A"  and -  Equal_form_cond3: "a =\<^sub>A b: U(i) \<Longrightarrow> b: A" - +  Equal_wellform3: "a =\<^sub>A b: U(i) \<Longrightarrow> b: A" -text "Rule declarations:" -lemmas Equal_rules [intro] = Equal_form Equal_intro Equal_elim Equal_comp -lemmas Equal_wellform [wellform] = Equal_form_cond1 Equal_form_cond2 Equal_form_cond3 -lemmas Equal_comps [comp] = Equal_comp +text "Rule attribute declarations:" +lemmas Equal_comp [comp] +lemmas Equal_wellform [wellform] = Equal_wellform1 Equal_wellform2 Equal_wellform3 +lemmas Equal_routine [intro] = Equal_form Equal_intro Equal_comp Equal_elim  end | 
