diff options
author | Josh Chen | 2018-05-30 15:39:35 +0200 |
---|---|---|
committer | Josh Chen | 2018-05-30 15:39:35 +0200 |
commit | 095bc4a60ab2c38a56c34b4b99d363c4c0f14e3d (patch) | |
tree | 81dfab17835d6edbdbc2881bccf5fb753b0413e9 /HoTT_Theorems.thy | |
parent | 29015c5877876df28890209d2ad341c6cabd1cc8 (diff) |
New type rules for dependent product and sum.
Diffstat (limited to 'HoTT_Theorems.thy')
-rw-r--r-- | HoTT_Theorems.thy | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/HoTT_Theorems.thy b/HoTT_Theorems.thy index 10a0d2c..0aefe94 100644 --- a/HoTT_Theorems.thy +++ b/HoTT_Theorems.thy @@ -37,22 +37,17 @@ qed subsection \<open>Function application\<close> -proposition "\<lbrakk>A : U; a : A\<rbrakk> \<Longrightarrow> (\<^bold>\<lambda>x:A. x)`a \<equiv> a" by simp +proposition "a : A \<Longrightarrow> (\<^bold>\<lambda>x:A. x)`a \<equiv> a" by simp text "Two arguments:" lemma - assumes "a:A" and "b:B" + assumes "a : A" and "b : B" shows "(\<^bold>\<lambda>x:A. \<^bold>\<lambda>y:B. x)`a`b \<equiv> a" proof - - have "(\<^bold>\<lambda>x:A. \<^bold>\<lambda>y:B. x)`a \<equiv> \<^bold>\<lambda>y:B. a" - proof (rule Prod_comp[of A _ "\<lambda>_. B\<rightarrow>A"]) - fix x - assume "x:A" - then show "\<^bold>\<lambda>y:B. x : B \<rightarrow> A" .. - qed (rule assms) + have "(\<^bold>\<lambda>x:A. \<^bold>\<lambda>y:B. x)`a \<equiv> \<^bold>\<lambda>y:B. a" using assms(1) by (rule Prod_comp[of a A "\<lambda>x. \<^bold>\<lambda>y:B. x"]) then have "(\<^bold>\<lambda>x:A. \<^bold>\<lambda>y:B. x)`a`b \<equiv> (\<^bold>\<lambda>y:B. a)`b" by simp - also have "(\<^bold>\<lambda>y:B. a)`b \<equiv> a" using assms by (simp add: Prod_comp[of B _ "\<lambda>_. A"]) + also have "(\<^bold>\<lambda>y:B. a)`b \<equiv> a" using assms by simp finally show "(\<^bold>\<lambda>x:A. \<^bold>\<lambda>y:B. x)`a`b \<equiv> a" . qed |