From 21f42a67c53cf5d3b478a21d7e09e2c145bac5b9 Mon Sep 17 00:00:00 2001 From: Michael Zhang Date: Thu, 1 Aug 2024 10:32:27 -0500 Subject: [PATCH] lecture 5 --- Exercises1.agda | 3 + Lecture1.typ | 157 +++++++++++++++++++++++++++- Lecture3.typ | 3 + Lecture5.typ | 246 ++++++++++++++++++++++++++++++++++++++++++++ Lol.agda | 133 ++++++++++++++++++------ exercises_tactics.v | 209 +++++++++++++++++++++++++++++++++++++ fibration.jpeg | Bin 0 -> 88866 bytes 7 files changed, 720 insertions(+), 31 deletions(-) create mode 100644 Lecture3.typ create mode 100644 Lecture5.typ create mode 100644 exercises_tactics.v create mode 100644 fibration.jpeg diff --git a/Exercises1.agda b/Exercises1.agda index fdc00a6..1f6391c 100644 --- a/Exercises1.agda +++ b/Exercises1.agda @@ -5,6 +5,7 @@ open import Agda.Primitive open import foundation-core.empty-types open import foundation-core.equivalences open import foundation-core.negation +open import foundation.natural-numbers open import foundation.dependent-pair-types open import foundation.identity-types open import foundation.univalence @@ -25,3 +26,5 @@ equal-to-zero {A} f = eq-equiv A ⊥ eqv eqv : A ≃ ⊥ eqv = f , s , r + +asdf : 0 ≡ 1 \ No newline at end of file diff --git a/Lecture1.typ b/Lecture1.typ index ca6d03a..1348f75 100644 --- a/Lecture1.typ +++ b/Lecture1.typ @@ -1,5 +1,6 @@ #import "prooftree.typ": * #import "@preview/showybox:2.0.1": showybox +#import "@preview/cetz:0.2.2": * #set page(width: 5.6in, height: 9in, margin: 0.4in) = Type theory crash course @@ -339,4 +340,158 @@ $ not A :defeq A -> empty $ *Solution.* Let $B :defeq rec_Bool (Type, unit, empty)$. Then $B(tru) defeq unit$ and $B(fls) defeq empty$. Then: -$ lambda (p : Id(tru, fls)) . transport^B (p, tt) : Id(tru, fls) -> empty $ \ No newline at end of file +$ lambda (p : Id(tru, fls)) . transport^B (p, tt) : Id(tru, fls) -> empty $ + +== Univalent Foundations + +Voevodsky at HLF 2016: + +- Math is the study of structures on sets and their higher analogs. +- Set-theoretic math is a subset of math that can be expressed in univalent foundations. +- Classic math is a subset of univalent math consisting of results that require LEM / AC. + +=== Identities as paths + +Identity behaves like classic equality in these ways: + +- Reflexivity, symmetry, transitivity +- $transport^B : B(x) times Id(x, y) -> B(y)$ + +Identity also does _not_ behave like classic equality in these ways: + +- There can be two different identities $p, q : Id(x, y)$ +- There can be identities of identities $ a : Id_(Id(x, y)) (p, q) $ + (but there don't have to be) + +So instead of treating them just as equality, we treat them kind of as homotopy, which is another notion of sameness coming from algebraic topology. + +// #canvas({ +// import draw: * +// fill(black) +// circle((0, 0), radius: 0.1) +// circle((3, 0), radius: 0.1) +// line((0.25, 0), (2.75, 0)) +// }) + +There's always a point $refl$ that stays at point $x$. + +=== Operations on paths + +#let pathto = $op(arrow.squiggly.r.long)$ + +Symmetry: if we have $p : x pathto y$, then we have $sym(p) : y pathto x$ + +Transport: transport sends a point $b : B(x)$ to a point $transport^B (p, b) : B(y)$. + +Functions map paths, not just points. If $p : x pathto y$, and $f : A -> B$, then $f(p) : f(x) pathto f(y)$ + +=== Path concatenation + +Paths have + +- Associativity ($(p dot q) dot r pathto p dot (q dot r)$) +- Identity ($p dot 1 pathto p$, $1 dot p pathto p$) +- Inverse ($p dot p^-1 pathto 1$, $p^-1 dot p pathto 1$) + +*Theorem (Garner, van den Berg).* $(A, pathto_A, pathto_(pathto_A), ...)$ forms an $infinity$-groupoid (groupoid laws hold up to higher paths). + +=== Interpreting types as topological spaces + +There's an interpretation of univalent foundations into the category of _Kan complexes_. + +(cannot interpret in the category of topological spaces for some technical reasons, ignore and it's ok to use this for intuition only) + +=== Interpretation as simplicial sets + +#table( + columns: 2, + stroke: 0in, + [$(A, pathto_A, pathto_(pathto_A), ...)$], [Kan complex $A$], + [$a:A$], [$a in A_0$], + [$A times B$], [binary product], + [$A + B$], [binary coproduct], + [$A -> B$], [space of maps], + [$x : A tack.r B(x)$], [fibration $B -> A$ with fibers $B(x)$], + [$sum_(x : A) B(x)$], [total space of fibration $B -> A$], + [$product_(x : A) B(x)$], [space of sections of fibration $B -> A$], +) + +Question: more intuition on fibration? + +- Fibration is something that has the transport property. A fibration is a _map_ in the category (i.e $B -> A$). + + #image("fibration.jpeg", height: 3in) + + Path lifting can be done over fibers in a fibration such as $B :defeq sum_(a : A) B(a)$ + +=== Contractible types + +#let isContr = $sans("isContr")$ + +*Definition (contractible).* A type $A$ is contractible if: $ isContr(A) :defeq sum_(x : A) product_(y : A) y pathto x $ + +In homotopy theory, you can contract a space into a single point. This is also called a *singleton*. The specified point $a$ is called the "center" of contraction, and there are paths from any other $y : A$ to $x$. + +Question: do you have to give the point? + +- In constructive logic, you must explicitly give the point that it is contracted to, cannot just prove with contradiction. + +=== Equivalence +#let isequiv = $sans("isequiv")$ + +*Definition (equivalence).* A map $f : A -> B$ is an *equivalence* if it has contractible fibers. + +$ isequiv(f) :defeq product_(b : B) isContr(sum_(a : A) f(a) pathto b) $ + +Fix $b$, the sigma is the preimage of the point $b$. For all $b$, all preimages are contractible. + +#let eqv = $tilde.eq$ + +$ A eqv B :defeq sum_(f : A -> B) isequiv(f) $ + +There are also other definitions of equivalence. + +*Exercise.* Show that 1 is contractible. + +*Exercise.* Let $A$ be a contractible type. Construct an equivalence $A eqv 1$ + +For paths between pairs, in the dependent version, we have + +$ ((a, b) pathto (a' , b')) eqv sum_(p : a pathto a') transport^B (p, b) pathto b' $ + +This is required because $b : B(a)$ but $b' : B(a')$, and we can't write paths between different types. +So instead, we use transport to get back into the correct type: $transport^B (p, b) : B(a')$ + +=== Path types of identity types + +Cannot show uniqueness of identity proofs (UIP): $ product_(a, b: A) product_(p, q : a pathto b) p pathto q $ + +(Lean assumes UIP) + +=== Path types of the universe + +#let idtoequiv = $sans("idtoequiv")$ + +$ idtoequiv : product_(A, B : Type) (A pathto B) -> (A eqv B) $ + +*Definition (univalence).* $idtoequiv$ is an equivalence. + +- Question: What is the benefit of UIP over univalence? + - UIP gives set theory + +- Question: what if you had a path between $A pathto B$ and $A eqv B$? + - You can use univalence to get a path. But we shouldn't assume an equality without first using $idtoequiv$. + +=== Propositional truncation + +#let trunc(A) = [$bar.double$#A$bar.double$] + +#typeIntroTable( + [If $A$ is a type, then $trunc(A)$ is a type], + [If $a:A$, then $overline(a):trunc(A)$ and $ p(A) : product_(x, y: trunc(A)) x pathto y $], + [If $f:A->B$ and $B$ is a prop, then we have $overline(f) : trunc(A) -> B$], + [$overline(f)(overline(a)) defeq f(a)$], +) + +- $p(A)$ turns $trunc(A)$ into a proposition +- $trunc(A)$ is empty if $A$ is, and contractible if $A$ has one element. \ No newline at end of file diff --git a/Lecture3.typ b/Lecture3.typ new file mode 100644 index 0000000..48083a8 --- /dev/null +++ b/Lecture3.typ @@ -0,0 +1,3 @@ +#import "prooftree.typ": * +#import "@preview/showybox:2.0.1": showybox +#set page(width: 5.6in, height: 9in, margin: 0.4in) \ No newline at end of file diff --git a/Lecture5.typ b/Lecture5.typ new file mode 100644 index 0000000..f013e95 --- /dev/null +++ b/Lecture5.typ @@ -0,0 +1,246 @@ +#import "prooftree.typ": * +#import "@preview/showybox:2.0.1": showybox +#import "@preview/commute:0.2.0": node, arr, commutative-diagram +#import "@preview/cetz:0.2.2": * +#set page(width: 5.6in, height: 9in, margin: 0.4in) + += Set-level mathematics + +#let isofhlevel = $sans("isofhlevel")$ +#let Nat = $sans("Nat")$ +#let Vect = $sans("Vect")$ +#let Bool = $sans("Bool")$ +#let carrier = $sans("carrier")$ +#let iseqclass = $sans("iseqclass")$ +#let isInjective = $sans("isInjective")$ +#let Type = $sans("Type")$ +#let reflexive = $sans("reflexive")$ +#let Even = $sans("Even")$ +#let isEven = $sans("isEven")$ +#let Prop = $sans("Prop")$ +#let isProp = $sans("isProp")$ +#let Set = $sans("Set")$ +#let isContr = $sans("isContr")$ +#let isIso = $sans("isIso")$ +#let isEquiv = $sans("isEquiv")$ +#let isSet = $sans("isSet")$ +#let zero = $sans("zero")$ +#let suc = $sans("suc")$ +#let Monoid = $sans("Monoid")$ +#let MonoidStr = $sans("MonoidStr")$ +#let MonoidAxioms = $sans("MonoidAxioms")$ +#let refl = $sans("refl")$ +#let defeq = $equiv$ +#let propeq = $=$ + +$ isofhlevel& : Nat -> Type -> Type \ +isofhlevel&(zero)(X) :defeq isContr(X) \ +isofhlevel&(suc(n))(X) :defeq product_(x,y:X) \ +isofhlevel& (n, x propeq y)$ + +$ isSet(X) :defeq isofhlevel(2)(X) \ +Set :defeq sum_(X : Type) isSet(X) $ + +Sets are the types that satisfy UIP. We don't have _all_ types satisfying UIP since it would contradict univalence. + +- If $p, q : x propeq y$ then $p propeq q$ +- Also, $p : x propeq x$ then $p propeq refl$ + +Quite a lot of things are sets. What are some sets? + +== Decidable equality + +*Definition (decidable).* A type $X$ is _decidable_ if $X + not X$. + +*Definition (decidable equality).* A type $X$ has decidable equality if all of its path types are decidable. + +If a type $X$ has decidable equality, then $X$ is a set. (Hedberg's theorem.) + +*Exercise.* Prove that $Bool$ and $Nat$ have decidable equality + +Using this theorem you can prove $Bool$ and $Nat$ are sets. + +=== Closure properties + +Sets also have a lot of closure properties: + +- $sum_(x : A) B(x)$ is a set if $A$ and all $B(x)$ are +- $A times B$ is a set if $A$ and $B$ are +- $product_(x : A) B(x)$ is a set if all $B(x)$ are +- $A -> B$ is a set if $B$ is +- $A$ is a set if its a proposition + +Example. $Bool$ is a set, so $Bool times Bool$ is a set. etc. What types are definitely _not_ a set? + +*Exercise.* Prove that $Prop :defeq sum_(X : Type) isProp(X)$ is a set. (this is not a trivial proof by one of the closure properties) + +- It's consistent to add global UIP to regular MLTT. +- If you add univalence, some types can be shown to _not_ be sets. +- (UIP + univalence == inconsistent) + +You can prove that $Type$ is not a set, if it contains the type $Bool$ (not exactly just this, but some other types might be also able to satisfy this (true $eq.not$ false???)) + +Notably, $Set$ is also not a set. (what h-level does it have?). This is different from working in a classic system with UIP. + +Why do we care about sets, h-levels and props? Some types are very "property"-like, and it's nice for them to be propositions. For example, if a natural number is even. + +$ Even :defeq sum_(n : Nat) isEven(n) $ + +In dependent pairs, the second b condition requires a transport to express its identity. In the case that $B(x)$ is a proposition for all $x$, then $Even$s can have the "right" notion of equality. + +Sets are important because a lot of side conditions (i.e is even), are equational. You would like these to be propositions. By restricting to sets, you get this nice property. + +One example that's weird about univalence foundations, $f : X -> Y$ + +$ isInjective(f) :defeq product_(x,x': X) f(x) propeq f(x') -> x propeq x' $ + +This isn't a proposition in general, but if we make $X$ a set, this becomes a proposition. If $X$ isn't a set, then the actual proof of injectivity needs to be carried around and is relevant. + +Question: why does $Y$ not need to be a set here? \ +Answer: see exercises! + +You can also define it in a way that doesn't depend on what $X$ and $Y$ are (truncations?). + +Another example is isomorphism. + +*Warning.* Stating the univalence axiom with isomorphism instead of equivalence leads to inconsistency. (advanced exercise). But if $X$ and $Y$ are sets, then $isIso(f) tilde.eq isEquiv(f) $ + +The space of proofs of equivalence is a proposition. But the space of isomorphisms may not be a proposition. So they are logically equivalence (there are functions in both directions) but there's no inverse laws because there may be more isomorphisms. + +== Applications: algebraic structures + +A *monoid* is a triple $(M, mu, e)$ of: + +- A set $M$ +- A multiplciation $mu : M times M -> M$ +- Unit $e in M$ + +satisfying associativity, left / right neutrality. Exampls of these are natural numbers or integers with $mu = $ addition and $e = 0$. + +But in type theory, equations are just other types. So we need a 6-tuple instead of a 3-tuple that also contains the three properties (associativity, neutrality...). In particular, we want $M$ to be a $Set$ instead of a $Type$. + +This way we can have the axioms to be propositions. When comparing two monoids we would like the equality to really just involve the first three parts and not have to talk about equality between the proofs of the properties in the last 3. + +So we can re-group these into: + +$ Monoid :defeq sum_( M :Set) sum_(mu, e : MonoidStr(M)) MonoidAxioms(M, (mu,e)) $ + +This type will have the nice equality property that we want if $MonoidAxioms$ is a proposition. And we will have this automatically if $M$ is a set. + +Question: what happens if you just truncate the axioms? \ +Answer: you could only map truncations out into propositions, instead of mapping the axioms out to anything. Also it won't form a category. + +#let MonoidM = $bold(M)$ + +*Definition( monoid isomorphism).* between two monoids is an isomorphism of sets $f : MonoidM tilde.equiv MonoidM'$ that sends one unit to other unit and one multiplication to the other. + +*Exercise.* The type of monoid equalities $MonoidM propeq MonoidM'$ is equivalent to the type of monoid isomorphisms $MonoidM tilde.equiv MonoidM'$. + +_Proof sketch._ First, discard the axioms since $M$ is a set. So split it apart into $M$ equality and then the equality of the $MonoidStr$ part, which requires a transport. With $M$ is a set, the transports go away. + +In fact, any property about monoids expressible in UF can be transported along isomorphism. + +$ (MonoidM tilde.equiv MonoidM') -> T(MonoidM) -> T(MonoidM') $ + +*Example.* If $MonoidM$ is commutative, then $MonoidM'$ is also, regardless of what commutativity says. + +This is known as the _Structure Identity Principle_. + +#align(center)[ + #quote[ + Isomorphic mathematical structures are equal as structured types, and have all the same structural properties. + ] +] +(Coquand, Aczel) + +This holds for many algebraic structures. Isomorphic structures have *all* the same definable properties. + +https://ncatlab.org/nlab/show/structure+identity+principle + +Question: is this only true of sets? \ +Answer: this is normally stated for sets, but this is more general than that. The isomorphisms just become a bit more complicated. + +== Predicates on types + +A *subtype* $A$ of a type $X$ is a prop-valued predicate: + +$ A : X -> Prop $ + +*Exercise.* Prove that the type of subtypes of $X$ is a set. (you can do this just with things from the slides) + +You might've thought that a subtype would be a type. But $A$ is a function. So you can create a type that carries it: + +$ carrier(A) :defeq sum_(x: X) A(x) $ + +What about a binary relation? + +$ R : X -> X -> Prop $ + +*Exercise.* Prove that the type of binary relations on $X$ is a set. + +These behave as you think. For example: + +$ reflexive(R) :defeq product_(x: X) R(x)(x) $ + +(there can only be one proof of this because $R$ is prop-valued) + +Why are we talking about equivalence relations? Well, one important thing in math is to take the quotient of a set by an equivalence relation. + +The *quotient* of a type $X$ by an equivalence relation $R$ on $X$ is a pair $(X \/ R , p)$ of a type $X \/ R$ and a map $p : X -> X \/ R$ such that any $R$-compatible map $f$ into a set $Y$ factors uniquely via $p$. ($R$-compatible map is $product_(x,y:A) R(x,y) -> f(x) propeq f(y)$) + +You think of the quotient as the set of equivalence classes. $p$ sends each element of $X$ to its equivalence class. + +#align(center)[#commutative-diagram( + node((0, 0), $X$), + node((1, 0), $X\/R$), + node((1, 1), $Y$), + arr($X$, $X\/R$, $p$), + arr($X\/R$,$Y$, $exists ! f'$), + arr($X$, $Y$, $f$), +)] + +MLTT normally doesn't have quotients. But in UF we can define them as the set of equivalence classes in $R$. + +(You could consider things like groupoid quotients too) (you can quotient the unit type into a circle) (the problem is if $Y$ is not a set, then $X \/ R$ also won't be a set) (Favonia: don't do this yet) + +== Quotient set + +*Definition.* A subtype $A : X -> Prop$ is an equivalence class of $R$ if + +$ iseqclass(A, R) :defeq bar.double carrier(A) bar.double times (product_(x,y:X) R(x,y) -> A(x) -> A(y)) \ +times (product_(x,y:X) A(x) -> A(y) -> R(x, y )) $ + +Then we define + +$ X \/ R :defeq sum_(A : X -> Prop) iseqclass(A, R) $ + +The fact that $Prop$ is a set, that two $Prop$s are equal if they imply each other is a consequence of univalence. So you can't do this in plain MLTT. + +== Questions + +- #[ + *Why is this not possible in MLTT?* \ + Let's say you dropped the truncation. What happens? Then there are a lot of proofs of $iseqclass(A, R)$ (one for each $x : X$ telling how it got into $X \/ R$). Then $X \/ R$ will count as many elements as there are in $X$, so you haven't reduced the number of elements at all. +] + +- #[ + *What about MLTT with UIP?* + Lean has MLTT with UIP and also they have quotients. Even if you add UIP to a language, you don't get quotients. The c ool thing in UF is that you can just define quotients. +] + +- #[ + *Is it possible to use unimath for algebraic structures that can't be defined with equations? (i.e quasi-groups)* \ + https://en.wikipedia.org/wiki/Quasigroup \ + Benedikt: there are some other examples, i.e fields. In constructive math there's lots of definitions of a field. +] + +- #[ + *What does SIP have to do with univalence? Sounds true of base MLTT.* \ + Univalence says the equality of two sets is an isomorphism. You can think of $Set$ as an algebraic structure that has a carrier and no operations. So you can kind of observe that univalence holds for $Set$ as kind of a trivial case. But the SIP still holds even if you add more operations. + + *Where did you use univalence in the proof sketch?* + Going from $p : MonoidM propeq MonoidM'$ to $f : MonoidM tilde.equiv MonoidM'$ + + *How does univalence imply this?* + $MonoidM$ and $MonoidM'$ are sets. This is true because of univalence. +] \ No newline at end of file diff --git a/Lol.agda b/Lol.agda index 7594ff1..d21fff4 100644 --- a/Lol.agda +++ b/Lol.agda @@ -1,39 +1,112 @@ -{-# OPTIONS --cubical #-} +open import Agda.Primitive -open import Cubical.Foundations.Prelude +private + variable + l : Level -data ℕ : Set where - zero : ℕ - suc : ℕ → ℕ +data _≡_ {A : Set l} : A → A → Set l where + refl : {x : A} → x ≡ x -add : ℕ → ℕ → ℕ -add zero n = n -add (suc m) n = add m (suc n) +data ⊥ : Set where +data ⊤ : Set where + tt : ⊤ -data ℤ₀ : Set where - pos : ℕ → ℤ₀ - negsuc : ℕ → ℤ₀ +result2 : (B : Set) → ((A : Set) → (B → A) → A) → B +result2 B x = + let + y = x B λ x → x + in y -data ℤ : Set where - z : ℕ → ℕ → ℤ - p : (m n : ℕ) → z m n ≡ z (suc m) (suc n) +data N : Set where + zero : N + suc : N -> N +{-# BUILTIN NATURAL N #-} -ℤ→ℤ₀ : ℤ → ℤ₀ -ℤ→ℤ₀ (z zero zero) = pos zero -ℤ→ℤ₀ (z zero (suc x₁)) = negsuc x₁ -ℤ→ℤ₀ (z (suc x) zero) = pos (suc x) -ℤ→ℤ₀ (z (suc x) (suc x₁)) = ℤ→ℤ₀ (z x x₁) -ℤ→ℤ₀ (p m n i) = ℤ→ℤ₀ {! !} +data Bool : Set where + true : Bool + false : Bool -ℤ₀→ℤ : ℤ₀ → ℤ -ℤ₀→ℤ (pos x) = z x zero -ℤ₀→ℤ (negsuc x) = z zero (suc x) +ifbool : {A : Set} (x y : A) -> Bool -> A +ifbool {A} x y true = x +ifbool {A} x y false = y -ap : ∀ {A B x y} → (f : A → B) → (x ≡ y) → (f x ≡ f y) -ap f x i = f (x i) +negbool : Bool -> Bool +negbool true = false +negbool false = true -add-ℤ : ℤ → ℤ → ℤ -add-ℤ (z x x₁) (z x₂ x₃) = z (add x x₂) (add x₁ x₃) -add-ℤ (z x x₁) (p m n i) = z (add x {! !}) {! !} -add-ℤ (p m n i) (z x x₁) = {! !} -add-ℤ (p m n i) (p m₁ n₁ i₁) = {! !} \ No newline at end of file +pred : N -> N +pred zero = zero +pred (suc x) = x + +isZero : N -> Bool +isZero zero = true +isZero (suc x) = false + +iter : (A : Set) (a : A) (f : A -> A) -> N -> A +iter A a f zero = a +iter A a f (suc x) = iter A (f a) f x + +_^_ : {A : Set} → (A → A) → N → A → A +_^_ = λ f n → (λ x → iter _ x f n) + +sub : N -> N -> N +sub x y = (pred ^ y) x + +lt1 : N -> N -> Bool +lt1 m n = negbool (isZero (sub m n)) + +lt2 : N -> N -> Bool +lt2 m n = isZero (sub (suc m) n) + +postulate + funExt : {A : Set} {B : A → Set} {f g : (x : A) → B x} + → ((x : A) → f x ≡ g x) → f ≡ g + +ap : {A B : Set l} (f : A → B) {x y : A} (p : x ≡ y) → f x ≡ f y +ap f refl = refl + +trans : {A : Set l} {x y z : A} → x ≡ y → y ≡ z → x ≡ z +trans refl refl = refl + +module ≡-Reasoning where + infix 1 begin_ + begin_ : {l : Level} {A : Set l} {x y : A} → (x ≡ y) → (x ≡ y) + begin x = x + + _≡⟨⟩_ : {l : Level} {A : Set l} (x {y} : A) → x ≡ y → x ≡ y + _ ≡⟨⟩ x≡y = x≡y + + infixr 2 _≡⟨⟩_ step-≡ + step-≡ : {l : Level} {A : Set l} (x {y z} : A) → y ≡ z → x ≡ y → x ≡ z + step-≡ _ y≡z x≡y = trans x≡y y≡z + syntax step-≡ x y≡z x≡y = x ≡⟨ x≡y ⟩ y≡z + + infix 3 _∎ + _∎ : {l : Level} {A : Set l} (x : A) → (x ≡ x) + _ ∎ = refl +open ≡-Reasoning + +--- + +sub-zero-zero : (y : N) -> sub zero y ≡ zero +sub-zero-zero zero = refl +sub-zero-zero (suc y) = sub-zero-zero y + -- sub zero (suc y) ≡⟨⟩ + -- (pred ^ (suc y)) zero ≡⟨⟩ + -- iter _ zero pred (suc y) ≡⟨⟩ + -- iter _ (pred zero) pred y ≡⟨⟩ + -- iter _ zero pred y ≡⟨⟩ + -- (pred ^ y) zero ≡⟨⟩ + -- sub zero y ≡⟨ sub-zero-zero y ⟩ + -- zero ∎ + +f : (x y : N) -> lt1 x y ≡ lt2 x y +f zero zero = refl +f zero (suc y) = + lt1 zero (suc y) ≡⟨⟩ + negbool (isZero (sub zero (suc y))) ≡⟨ {! !} ⟩ + lt2 zero (suc y) ∎ +f (suc x) y = {! !} + +prop : lt1 ≡ lt2 +prop = funExt λ x → funExt λ y → f x y \ No newline at end of file diff --git a/exercises_tactics.v b/exercises_tactics.v new file mode 100644 index 0000000..9db7253 --- /dev/null +++ b/exercises_tactics.v @@ -0,0 +1,209 @@ +(** Exercise sheet for lecture 4: Tactics in Coq. + + prepared using material by Ralph Matthes + *) + +(** * Exercise 1 +Formalize the following types in UniMath and construct elements for them interactively - +if they exist. Give a counter-example otherwise, i.e., give specific parameters and a +proof of the negation of the statement. + +[[ +1. A × (B + C) → A × B + A × C, given types A, B, C +2. (A → A) → (A → A), given type A (for extra credit, write down five elements of this type) +3. Id_nat (0, succ 0) +4. ∑ (A : Universe) (A → empty) → empty +5. ∏ (n : nat), ∑ (m : nat), Id_nat n (2 * m) + Id_nat n (2 * m + 1), + assuming you have got arithmetic +6. (∑ (x : A) B × P x) → B × ∑ (x : A) P x, given types A, B, and P : A → Universe +7. B → (B → A) → A, given types A and B +8. B → ∏ (A : Universe) (B → A) → A, given type B +9. (∏ (A : Universe) (B → A) → A) → B, given type B +10. x = y → y = x, for elements x and y of some type A +11. x = y → y = z → x = z, for elements x, y, and z of some type A +]] + +More precise instructions and hints: + +1. Use [⨿] in place of the + and pay attention to operator precedence. + +2. Write a function that provides different elements for any natural number argument, + not just five elements; for extra credits: state correctly that they are different - + for a good choice of [A]; for more extra credits: prove that they are different. + +3. An auxiliary function may be helpful (a well-known trick). + +4. The symbol for Sigma-types is [∑], not [Σ]. + +5. Same as 1; and there is need for module [UniMath.Foundations.NaturalNumbers], e.g., + for Lemma [natpluscomm]. + +6.-9. no further particulars +*) + +Require Import UniMath.Foundations.All. +Require Import UniMath.MoreFoundations.All. +Require Import UniMath.Foundations.Preamble. +Require Import UniMath.Foundations.PartA. +Require Import UniMath.Foundations.NaturalNumbers. + +(* 1. A × (B + C) → A × B + A × C, given types A, B, C *) +Goal ∏ (A B C : UU), A × (B ⨿ C) -> (A × B) ⨿ (A × C). +Proof. + intros. + induction X. + induction pr2. + - apply ii1. apply tpair. apply pr1. apply a. + - apply ii2. apply tpair. apply pr1. apply b. +Defined. + +(* 2. (A → A) → (A → A), given type A (for extra credit, write down five elements of this type) *) +Goal ∏ (A : UU), (A -> A) -> (A -> A). +Proof. + intros. + apply X0. +Defined. + +(* 3. Id_nat (0, succ 0) *) +Goal (O = S O) -> empty. +Proof. + intros. + exact (transportf (fun c => match c with O => unit | S _ => empty end) X tt). +Defined. + +Locate "∑". +Print total2. + +(* 4. ∑ (A : Universe) (A → empty) → empty *) +Goal ∑ (A : UU), (A -> empty) -> empty. +Proof. + use tpair. + - exact unit. + - simpl. intros. apply X. exact tt. +Defined. + +(* 5. ∏ (n : nat), ∑ (m : nat), Id_nat n (2 * m) + Id_nat n (2 * m + 1), *) + (* assuming you have got arithmetic *) +Goal ∏ (n : nat), ∑ (m : nat), (paths n (2 * m)) ⨿ (paths n (1 + (2 * m))). +Proof. + intros. + induction n. + - use tpair. + + exact 0. + + simpl. apply inl. reflexivity. + - induction IHn. induction pr2. + * use tpair. exact pr1. simpl. apply inr. rewrite a. reflexivity. + * use tpair. exact (S pr1). simpl. apply inl. rewrite b. simpl. + assert (S (pr1 + pr1) = S pr1 + pr1). + + reflexivity. + + rewrite X. rewrite natpluscomm. reflexivity. +Defined. + +(* 6. (∑ (x : A) B × P x) → B × ∑ (x : A) P x, given types A, B, and P : A → Universe *) +Goal ∏ (A B : UU) (P : A -> UU), (∑ (x : A), B × P x) -> B × ∑ (x : A), P x. +Proof. + intros. + induction X. induction pr2. + use tpair. + * exact pr0. + * simpl. use tpair. + + exact pr1. + + simpl. exact pr2. +Defined. + +(* 7. B → (B → A) → A, given types A and B *) +Goal ∏ (A B : UU), B -> (B -> A) -> A. +Proof. + intros. + apply X0. exact X. +Defined. + +(* 8. B → ∏ (A : Universe) (B → A) → A, given type B *) +Goal ∏ (B : UU), B -> ∏ (A : UU), (B -> A) -> A. +Proof. + intros. + apply X0. exact X. +Defined. + +(* 9. (∏ (A : Universe) (B → A) → A) → B, given type B *) +Goal ∏ (B : UU), (∏ (A : UU), (B -> A) -> A) -> B. +Proof. + intros. + exact (X B (fun x => x)). +Defined. + +(* 10. x = y → y = x, for elements x and y of some type A *) +Goal ∏ (A : UU) (x y : A), x = y -> y = x. +Proof. + intros. + induction X. + apply idpath. +Defined. + +(* 11. x = y → y = z → x = z, for elements x, y, and z of some type A *) +Goal ∏ (A : UU) (x y z : A), x = y -> y = z -> x = z. +Proof. + intros. + induction X. induction X0. + apply idpath. +Defined. + +(** * Exercise 2 +Define two computable strict comparison operators for natural numbers based on the fact +that [m < n] iff [n - m <> 0] iff [(m+1) - n = 0]. Prove that the two operators are +equal (using function extensionality, i.e., [funextfunStatement] in the UniMath library). + +It may be helpful to use the definitions of the exercises for lecture 2. +The following lemmas on substraction [sub] in the natural numbers may be +useful: + +a) [sub n (S m) = pred (sub n m)] + +b) [sub 0 n = 0] + +c) [pred (sub 1 n) = 0] + +d) [sub (S n) (S m) = sub n m] + +*) + + +(** from exercises to Lecture 2: *) +Definition ifbool (A : UU) (x y : A) : bool -> A := + bool_rect (λ _ : bool, A) x y. + +Definition negbool : bool -> bool := ifbool bool false true. + +Definition nat_rec (A : UU) (a : A) (f : nat -> A -> A) : nat -> A := + nat_rect (λ _ : nat, A) a f. + +Definition pred : nat -> nat := nat_rec nat 0 (fun x _ => x). + +Definition is_zero : nat -> bool := nat_rec bool true (λ _ _, false). + +Definition iter (A : UU) (a : A) (f : A → A) : nat → A := + nat_rec A a (λ _ y, f y). + +Notation "f ̂ n" := (λ x, iter _ x f n) (at level 10). + +Definition sub (m n : nat) : nat := pred ̂ n m. + +Definition lt1 (m n : nat) : bool := negb (is_zero (sub m n)). + +Definition lt2 (m n : nat) : bool := is_zero (sub (S m) n). + +Definition lt1_eq_lt2 : lt1 = lt2. +Proof. + rewrite (funextfun lt1 lt2). + - apply idpath. + - intro x. rewrite (funextfun (lt1 x) (lt2 x)). + + apply idpath. + + intro y. unfold lt1. unfold lt2. + induction x. + induction y. + { auto. } + { + assert (∏ (y : nat), sub 0 y = 0) as Sub0. + { intros. induction y0. { auto. } { simpl. unfold pred. rewrite IHy0. auto. } } + rewrite Sub0. cbn. + } \ No newline at end of file diff --git a/fibration.jpeg b/fibration.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..45cf295a762a6d52332568ea02f03e542c116bcd GIT binary patch literal 88866 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 literal 0 HcmV?d00001