name | option-dest |
version | 1.14 |
description | Theory of the option destructors |
author | Joe Hurd <joe@gilith.com> |
license | MIT |
show | Data.Bool Data.Option |
⊦ ∀x. case.none.some none some x = x
⊦ (isNone none ⇔ T) ∧ ∀a. isNone (some a) ⇔ F
⊦ (isSome none ⇔ F) ∧ ∀a. isSome (some a) ⇔ T
⊦ (∀b f. case.none.some b f none = b) ∧
∀b f a. case.none.some b f (some a) = f a
⊦ T
⊦ (∃) = λP. P ((select) P)
⊦ (∀) = λp. p = λx. T
⊦ ∀x. x = x ⇔ T
⊦ (⇒) = λp q. p ∧ q ⇔ p
⊦ ∀x. x = none ∨ ∃a. x = some a
⊦ (∧) = λp q. (λf. f p q) = λf. f T T
⊦ (∃) = λP. ∀q. (∀x. P x ⇒ q) ⇒ q
⊦ (∨) = λp q. ∀r. (p ⇒ r) ⇒ (q ⇒ r) ⇒ r
⊦ ∀NONE' SOME'. ∃fn. fn none = NONE' ∧ ∀a. fn (some a) = SOME' a