diff --git a/0Trinitarianism/Preambles/P3.agda b/0Trinitarianism/Preambles/P3.agda
new file mode 100644
index 0000000..881cba0
--- /dev/null
+++ b/0Trinitarianism/Preambles/P3.agda
@@ -0,0 +1,6 @@
+module 0Trinitarianism.Preambles.P3 where
+
+open import Cubical.Core.Everything public
+open import Cubical.Data.Nat public hiding (_+_ ; isEven)
+open import 0Trinitarianism.Quest1Solutions public
+open import Cubical.Data.Empty public using (⊥)
diff --git a/0Trinitarianism/Quest3.agda b/0Trinitarianism/Quest3.agda
new file mode 100644
index 0000000..151d6be
--- /dev/null
+++ b/0Trinitarianism/Quest3.agda
@@ -0,0 +1,9 @@
+module 0Trinitarianism.Quest3 where
+
+open import 0Trinitarianism.Preambles.P3
+
+_+_ : ℕ → ℕ → ℕ
+n + m = {!!}
+
+SumOfEven : (x : Σ ℕ isEven) → (y : Σ ℕ isEven) → isEven (x .fst + y .fst)
+SumOfEven x y = {!!}
diff --git a/0Trinitarianism/Quest3.md b/0Trinitarianism/Quest3.md
new file mode 100644
index 0000000..9a6a312
--- /dev/null
+++ b/0Trinitarianism/Quest3.md
@@ -0,0 +1,103 @@
+# Pi Types
+
+We will try to formulate and prove the statement
+
+> The sum of two even naturals is even.
+
+## Defining Addition
+
+To do so we must define `+` on the naturals.
+Addition takes in two naturals and spits out a natural,
+so it should have type `ℕ → ℕ → ℕ`.
+```agda
+_+_ : ℕ → ℕ → ℕ
+n + m = ?
+```
+Try coming up with a sensible definition.
+It may not look 'the same' as ours.
+
+
+Hint
+
+`n + 0` should be `n` and `n + (m + 1)` should be `(n + m) + 1`
+
+
+
+## The Statement
+
+Now we can make the statement:
+```agda
+SumOfEven : (x : Σ ℕ isEven) → (y : Σ ℕ isEven) → isEven (x .fst + y .fst)
+SumOfEven x y = ?
+```
+> Tip: `x .fst` is another notation for `fst x`.
+> This works for all sigma types.
+There are three ways to interpret this:
+
+- For all even naturals `x` and `y`,
+ their sum is even.
+- `isEven (x .fst + y .fst)` is a construction depending on two recipes
+ `x` and `y`.
+ Given two recipes `x` and `y` of `Σ ℕ isEven`,
+ we break them down into their first components,
+ apply the conversion `_+_`,
+ and form a recipe for `isEven` of the result.
+- `isEven (_ .fst + _ .fst)` is a bundle over the categorical product
+ `Σ ℕ isEven × Σ ℕ isEven` and `SumOfEven` is a _section_ of the bundle.
+
+More generally given `A : Type` and `B : A → Type`
+we can form the _pi type_ `(x : A) → B x : Type`
+(in other languages `Π (x : ℕ), isEven n`).
+The notation suggests that these behave like functions,
+and indeed in the special case where the fiber is constant
+with respect to the base space
+a section is just a term of type `A → B`, i.e. a function.
+Hence pi types are also known as _dependent function types_.
+
+We are now in a position to prove the statement. Have fun!
+
+## Remarks
+
+_Important_: Once you have proven the statement,
+check out our two ways of defining addition `_+_` and `_+'_`
+(in the solutions).
+
+- Use `C-c C-n` to check that they compute the same values
+ on different examples.
+- Uncomment the code for `Sum'OfEven` in the solutions.
+ It is just `SumOfEven` but with `+`s changed for `+'`s.
+- Load the file. Does the proof still work?
+
+Our proof `SumOfEven` relied on
+the explicit definition of `_+_`,
+which means if we wanted to use our proof on
+someone else's definition of addition,
+it might not work anymore.
+> But `_+_` and `_+'_` compute the same values.
+> Are `_+_` and `_+'_` 'the same'? What is 'the same'?
+
+## Another Task : Decidability of `isEven`
+
+As the final task of the Quest,
+try to express and prove in agda the statement
+> For any natural number it is even or is is not even.
+We will make a summary of what is needed:
+
+- a definition of the type `A ⊕ B` (input `\oplus`),
+ which has three interpretations
+ - the proposition '`A` or `B`'
+ - the construction with two ways of making recipes
+ `left : A → A ⊕ B`
+ and `right : B → A ⊕ B`.
+ - the coproduct of two objects `A` and `B`.
+ The type needs to take in parameters `A : Type` and `B : Type`
+ ```agda
+ data _⊕_ (A : Type) (B : Type) : Type where
+ ???
+ ```
+- a definition of negation. One can motivate it by the following
+ - Define `A ↔ B : Type` for two types `A : Type` and `B : Type`.
+ - Show that for any `A : Type` we have `(A ↔ ⊥) ↔ (A → ⊥)`
+ - Define `¬ : Type → Type` to be `λ A → (A → ⊥)`.
+- a formulation and proof of the statement above
+
diff --git a/0Trinitarianism/Quest3Solutions.agda b/0Trinitarianism/Quest3Solutions.agda
new file mode 100644
index 0000000..8798ce0
--- /dev/null
+++ b/0Trinitarianism/Quest3Solutions.agda
@@ -0,0 +1,58 @@
+module 0Trinitarianism.Quest3Solutions where
+
+open import 0Trinitarianism.Preambles.P3
+
+_+_ : ℕ → ℕ → ℕ
+n + zero = n
+n + suc m = suc (n + m)
+
+_+'_ : ℕ → ℕ → ℕ
+zero +' n = n
+suc m +' n = suc (m +' n)
+
+SumOfEven : (x : Σ ℕ isEven) → (y : Σ ℕ isEven) → isEven (x .fst + y .fst)
+SumOfEven x (zero , hy) = x .snd
+SumOfEven x (suc (suc y) , hy) = SumOfEven x (y , hy)
+
+{-
+
+Sum'OfEven : (x : Σ ℕ isEven) → (y : Σ ℕ isEven) → isEven (x .fst +' y .fst)
+Sum'OfEven x (zero , hy) = x .snd
+Sum'OfEven x (suc (suc y) , hy) = Sum'OfEven x (y , hy)
+
+-}
+
+data _⊕_ (A : Type) (B : Type) : Type where
+ left : A → A ⊕ B
+ right : B → A ⊕ B
+
+_↔_ : Type → Type → Type
+_↔_ A B = (A → B) × (B → A)
+
+¬Motivation : (A : Type) → ((A ↔ ⊥) ↔ (A → ⊥))
+¬Motivation A =
+ -- forward direction
+ (
+ -- suppose we have a proof `hiff : A ↔ ⊥`
+ λ hiff →
+ -- give the forward map only
+ fst hiff
+ ) ,
+ -- backward direction; assume a proof hto : A → ⊥
+ λ hto →
+ -- we need to show A → ⊥ which we have already
+ hto
+ ,
+ -- we need to show ⊥ → A, which is the principle of explosion
+ λ ()
+
+¬ : Type → Type
+¬ A = A → ⊥
+
+isEvenDecidable : (n : ℕ) → isEven n ⊕ ¬ (isEven n)
+-- zero is even; go left
+isEvenDecidable zero = left tt
+-- one is not even; go right
+isEvenDecidable (suc zero) = right (λ ())
+-- inductive step
+isEvenDecidable (suc (suc n)) = isEvenDecidable n
diff --git a/_build/2.6.3/agda/0Trinitarianism/Preambles/P1.agdai b/_build/2.6.3/agda/0Trinitarianism/Preambles/P1.agdai
new file mode 100644
index 0000000..2cb07d7
Binary files /dev/null and b/_build/2.6.3/agda/0Trinitarianism/Preambles/P1.agdai differ
diff --git a/_build/2.6.3/agda/0Trinitarianism/Preambles/P3.agdai b/_build/2.6.3/agda/0Trinitarianism/Preambles/P3.agdai
new file mode 100644
index 0000000..71f515e
Binary files /dev/null and b/_build/2.6.3/agda/0Trinitarianism/Preambles/P3.agdai differ
diff --git a/_build/2.6.3/agda/0Trinitarianism/Quest1Solutions.agdai b/_build/2.6.3/agda/0Trinitarianism/Quest1Solutions.agdai
new file mode 100644
index 0000000..1969144
Binary files /dev/null and b/_build/2.6.3/agda/0Trinitarianism/Quest1Solutions.agdai differ
diff --git a/_build/2.6.3/agda/0Trinitarianism/Quest3Solutions.agdai b/_build/2.6.3/agda/0Trinitarianism/Quest3Solutions.agdai
new file mode 100644
index 0000000..91073bd
Binary files /dev/null and b/_build/2.6.3/agda/0Trinitarianism/Quest3Solutions.agdai differ