From cd032ff482f9236b9081a6b1ef929db99603da3e Mon Sep 17 00:00:00 2001 From: jlh Date: Wed, 21 Jul 2021 15:00:07 +0100 Subject: [PATCH] lagda trial --- .../AsProps/Quest0Solutions.lagda.md | 39 ++++ Trinitarianism/Quest0.agda | 220 ++++++++++++++++++ Trinitarianism/Quest0Preamble.agda | 9 + .../agda/Trinitarianism/Quest0Preamble.agdai | Bin 0 -> 22919 bytes 4 files changed, 268 insertions(+) create mode 100644 Trinitarianism/AsProps/Quest0Solutions.lagda.md create mode 100644 Trinitarianism/Quest0.agda create mode 100644 Trinitarianism/Quest0Preamble.agda create mode 100644 _build/2.6.2/agda/Trinitarianism/Quest0Preamble.agdai diff --git a/Trinitarianism/AsProps/Quest0Solutions.lagda.md b/Trinitarianism/AsProps/Quest0Solutions.lagda.md new file mode 100644 index 0000000..64b410e --- /dev/null +++ b/Trinitarianism/AsProps/Quest0Solutions.lagda.md @@ -0,0 +1,39 @@ +```agda +module Trinitarianism.AsProps.Quest0Solutions where +open import Trinitarianism.AsProps.Quest0Preamble + +data ⊤ : Prop where + trivial : ⊤ + +data ⊥ : Prop where + +TrueToTrue : ⊤ → ⊤ +TrueToTrue = λ x → x + +TrueToTrue' : ⊤ → ⊤ +TrueToTrue' x = x + +TrueToTrue'' : ⊤ → ⊤ +TrueToTrue'' trivial = trivial + +TrueToTrue''' : ⊤ → ⊤ +TrueToTrue''' x = trivial + +isZero : ℕ → Prop +isZero zero = ⊤ +isZero (suc n) = ⊥ + +ExistsZero : Σ ℕ isZero +ExistsZero = zero , trivial + +AllZero→⊥ : ((x : ℕ) → isZero x) → ⊥ +AllZero→⊥ h = h 1 + +data _∨_ (P Q : Prop) : Prop where + left : P → P ∨ Q + right : Q → P ∨ Q + +DecidableIsZero : (n : ℕ) → (isZero n) ∨ (isZero n → ⊥) +DecidableIsZero zero = left trivial +DecidableIsZero (suc n) = right (λ x → x) +``` diff --git a/Trinitarianism/Quest0.agda b/Trinitarianism/Quest0.agda new file mode 100644 index 0000000..cb64a87 --- /dev/null +++ b/Trinitarianism/Quest0.agda @@ -0,0 +1,220 @@ +module Trinitarianism.Quest0 where +open import Trinitarianism.Quest0Preamble + +private + postulate + u : Level +{- + Here are some things that we could like to have in a 'place to do maths' + * Objects to reason about (like ℕ) + * Recipes for making things inside objects (like + 1) + * Propositions to reason with (with the data of proofs) (like _ = 0) + + To make propositions we want + * False ⊥ + * True ⊤ + * Or ∨ + * And ∧ + * Implication → + + but propositions are useless if they're not talking about anything, + so we also want + * Predicates + * Exists ∃ + * For all ∀ + * Equality ≡ (of objects) +-} + +-- Here is how we define 'true' +data ⊤ : Type u where + trivial : ⊤ + +{- It reads '⊤ is a proposition and there is a proof of it, called "trivial"'. -} + +-- Here is how we define 'false' +data ⊥ : Type u where + +{- This says that ⊥ is the proposition where there are no proofs of it. -} + +{- +Given two propositions P and Q, we can form a new proposition 'P implies Q' +written P → Q +To introduce a proof of P → Q we assume a proof x of P and give a proof y of Q + +Here is an example demonstrating → in action +-} + +TrueToTrue : ⊤ → ⊤ +TrueToTrue = {!!} + +{- + * press C-c C-l (this means Ctrl-c Ctrl-l) to load the document, + and now you can fill the holes + * navigate to the hole { } using C-c C-f (forward) or C-c C-b (backward) + * press C-c C-r and agda will try to help you (r for refine) + * you should see λ x → { } + * navigate to the new hole + * C-c C-, to check what agda wants in the hole (C-c C-comma) + * the Goal area should look like + + Goal: ⊤ + ———————————————————————————————————————————————————————————— + x : ⊤ + + * this means you have a proof of ⊤ 'x : ⊤' and you need to give a proof of ⊤ + * you can now give it a proof of ⊤ and press C-c C-SPC to fill the hole + + There is more than one proof (see solutions) - are they the same? +-} + +{- +Let's assume we have the following the naturals ℕ +and try to define the 'predicate on ℕ' given by 'x is 0' +-} +isZero : ℕ → Type u +isZero zero = {!!} +isZero (suc n) = {!!} + +{- +Here's how: + * when x is zero, we give the proposition ⊤ + (try typing it in by writing \top then pressing C-c C-SPC) + * when x is suc n (i.e. 'n + 1', suc for successor) we give ⊥ (\bot) +This is technically using induction - see AsTypes. + +In general a 'predicate on ℕ' is just a 'function' P : ℕ → Type u +-} + +{- +You can check if zero is indeed zero by clicking C-c C-n, +which brings up a thing on the bottom saying 'Expression', +and you can type the following +isZero zero +isZero (suc zero) +isZero (suc (suc zero)) +... +-} + +{- +We can prove that 'there exists a natural number that isZero' +in set theory we might write + ∃ x ∈ ℕ, x = 0 +which in agda noation is + Σ ℕ isZero + +In general if we have predicate P : ℕ → Type u we would write + Σ ℕ P +for + ∃ x ∈ ℕ, P x + +To formulate the result Σ ℕ isZero we need to define +a proof of it +-} +ExistsZero : Σ ℕ isZero +ExistsZero = {!!} + +{- +To fill the hole, we need to give a natural and a proof that it is zero. +Agda will give the syntax you need: + * navigate to the correct hole then refine using C-c C-r + * there are now two holes - but which is which? + * navigate to the first holes and type C-c C-, + - for the first hole it will ask you to give it a natural 'Goal: ℕ' + - for the second hole it will ask you for a proof that + whatever you put in the first hole is zero 'Goal: isZero ?0' for example + * try to fill both holes, using C-c C-SPC as before + * for the second hole you can try also C-c C-r, + Agda knows there is an obvious proof! +-} + +{- +Let's show 'if all natural numbers are zero then we have a contradiction', +where 'a contradiction' is a proof of ⊥. +In maths we would write + (∀ x ∈ ℕ, x = 0) → ⊥ +and the agda notation for this is + ((x : ℕ) → isZero x) → ⊥ + +In general if we have a predicate P : ℕ → Prop then we write + (x : ℕ) → P x +to mean + ∀ x ∈ ℕ, P x +-} + +AllZero→⊥ : ((x : ℕ) → isZero x) → ⊥ +AllZero→⊥ = {!!} + +{- +Here is how we prove it in maths + * assume hypothesis h, a proof of (x : ℕ) → isZero x + * apply the hypothesis h to 1, deducing isZero 1, i.e. we get a proof of isZero 1 + * notice isZero 1 IS ⊥ + +Here is how you can prove it here + * navigate to the hole and check the goal + * to assume the hypothesis (x : ℕ) → isZero x, + type an h in front like so + AllZero→⊥ h = { } + * now do + * C-c C-l to load the file + * navigate to the new hole and check the new goal + * type h in the hole, type C-c C-r + * this should give h { } + * navigate to the new hole and check the Goal + * Explanation + * (h x) is a proof of isZero x for each x + * it's now asking for a natural x such that isZero x is ⊥ + * Try filling the hole with 0 and 1 and see what Agda says +-} + +{- +Let's try to show the mathematical statement +'any natural n is 0 or not' +but we need a definition of 'or' +-} +data OR (P Q : Type u) : Type u where + left : P → OR P Q + right : Q → OR P Q +{- +This reads + * Given propositions P and Q we have another proposition P or Q + * There are two ways of proving P or Q + * given a proof of P, left sends this to a proof of P or Q + * given a proof of Q, right sends this to a proof of P or Q + +Agda supports nice notation using underscores. +-} + +data _∨_ (P Q : Type u) : Type u where + left : P → P ∨ Q + right : Q → P ∨ Q + +{- +[Important note] +Agda is sensitive to spaces so these are bad + +data _ ∨ _ (P Q : Prop) : Prop where + left : P → P ∨ Q + right : Q → P ∨ Q + +data _∨_ (P Q : Prop) : Prop where + left : P → P∨Q + right : Q → P∨Q + +it is also sensitive to indentation so these are also bad + +data _∨_ (P Q : Prop) : Prop where +left : P → P ∨ Q +right : Q → P ∨ Q + +-} + +{- +Now we can prove it! +This technically uses induction - see AsTypes. +Fill the missing part of the theorem statement. +You need to first uncomment this by getting rid of the -- in front (C-x C-;) +-} +-- DecidableIsZero : (n : ℕ) → {!!} +-- DecidableIsZero zero = {!!} +-- DecidableIsZero (suc n) = {!!} diff --git a/Trinitarianism/Quest0Preamble.agda b/Trinitarianism/Quest0Preamble.agda new file mode 100644 index 0000000..aa45513 --- /dev/null +++ b/Trinitarianism/Quest0Preamble.agda @@ -0,0 +1,9 @@ + +module Trinitarianism.Quest0Preamble where + +open import Cubical.Core.Everything hiding (_∨_) public +open import Cubical.Data.Nat public + +private + postulate + u : Level diff --git a/_build/2.6.2/agda/Trinitarianism/Quest0Preamble.agdai b/_build/2.6.2/agda/Trinitarianism/Quest0Preamble.agdai new file mode 100644 index 0000000000000000000000000000000000000000..b1fc20529b4afa4a155f29a419b1afcc9f2f137d GIT binary patch literal 22919 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 literal 0 HcmV?d00001