aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Chen2021-04-17 17:41:56 +0100
committerJosh Chen2021-04-17 17:41:56 +0100
commit75ab44cc1d2ad63864ecb43215a56538748fc0d3 (patch)
tree58e3b532fd01502b4c2fa9bf237a3b0970b16e57
parent54df7336797dfa07124652a9eb75aac978a1a359 (diff)
parent092875d160a2d18c94bde41c6472e8031ab57313 (diff)
Merge branch 'dev'
Diffstat (limited to '')
-rw-r--r--hott/Bool_HoTT.thy8
-rw-r--r--hott/Identity.thy2
-rw-r--r--hott/Propositions.thy19
-rw-r--r--mltt/core/MLTT.thy2
4 files changed, 29 insertions, 2 deletions
diff --git a/hott/Bool_HoTT.thy b/hott/Bool_HoTT.thy
new file mode 100644
index 0000000..57a57b7
--- /dev/null
+++ b/hott/Bool_HoTT.thy
@@ -0,0 +1,8 @@
+theory Bool_HoTT
+imports
+ MLTT.Prelude
+ Propositions
+
+begin
+
+end
diff --git a/hott/Identity.thy b/hott/Identity.thy
index 0531b74..9ae0894 100644
--- a/hott/Identity.thy
+++ b/hott/Identity.thy
@@ -244,7 +244,7 @@ Lemma (def) ap_funcomp:
"p: x = y"
shows "(g \<circ> f)[p] = g[f[p]]"
apply (eq p)
- \<^item> by compute
+ \<^item> by (subst comp; typechk?)+
\<^item> by compute refl
done
diff --git a/hott/Propositions.thy b/hott/Propositions.thy
new file mode 100644
index 0000000..66e34d2
--- /dev/null
+++ b/hott/Propositions.thy
@@ -0,0 +1,19 @@
+theory Propositions
+imports
+ MLTT.Prelude
+ Equivalence
+
+begin
+
+definition isProp where "isProp A \<equiv> \<Prod>x y: A. x =\<^bsub>A\<^esub> y"
+definition isSet where "isSet A \<equiv> \<Prod>x y: A. \<Prod>p q: x =\<^bsub>A\<^esub> y. p =\<^bsub>x =\<^bsub>A\<^esub> y\<^esub> q"
+
+Theorem isProp_Top: "isProp \<top>"
+ unfolding isProp_def
+ by (intros, elims, refl)
+
+Theorem isProp_Bot: "isProp \<bottom>"
+ unfolding isProp_def
+ by (intros, elim)
+
+end
diff --git a/mltt/core/MLTT.thy b/mltt/core/MLTT.thy
index ea6462a..cd8ae42 100644
--- a/mltt/core/MLTT.thy
+++ b/mltt/core/MLTT.thy
@@ -443,7 +443,7 @@ Lemma funcomp_lambda_comp [comp]:
Lemma funcomp_apply_comp [comp]:
assumes
- "A: U i" "B: U i" "\<And>x y. x: B \<Longrightarrow> C x: U i"
+ "A: U i" "B: U i" "\<And>x. x: B \<Longrightarrow> C x: U i"
"f: A \<rightarrow> B" "g: \<Prod>x: B. C x"
"x: A"
shows "(g \<circ>\<^bsub>A\<^esub> f) x \<equiv> g (f x)"