- option_Axiom
-
|- !e f. ?fn. (!x. fn (SOME x) = f x) /\ (fn NONE = e)
- option_induction
-
|- !P. P NONE /\ (!a. P (SOME a)) ==> !x. P x
- SOME_11
-
|- !x y. (SOME x = SOME y) = (x = y)
- NOT_NONE_SOME
-
|- !x. ~(NONE = SOME x)
- NOT_SOME_NONE
-
|- !x. ~(SOME x = NONE)
- option_nchotomy
-
|- !opt. (opt = NONE) \/ ?x. opt = SOME x
- option_CLAUSES
-
|- (!x y. (SOME x = SOME y) = (x = y)) /\ (!x. THE (SOME x) = x) /\
(!x. ~(NONE = SOME x)) /\ (!x. ~(SOME x = NONE)) /\
(!x. IS_SOME (SOME x) = T) /\ (IS_SOME NONE = F) /\
(!x. IS_NONE x = (x = NONE)) /\ (!x. ~IS_SOME x = (x = NONE)) /\
(!x. IS_SOME x ==> (SOME (THE x) = x)) /\ (!x. case NONE SOME x = x) /\
(!x. case x SOME x = x) /\ (!x. IS_NONE x ==> (case e f x = e)) /\
(!x. IS_SOME x ==> (case e f x = f (THE x))) /\
(!x. IS_SOME x ==> (case e SOME x = x)) /\ (!u f. case u f NONE = u) /\
(!u f x. case u f (SOME x) = f x) /\
(!f x. OPTION_MAP f (SOME x) = SOME (f x)) /\
(!f. OPTION_MAP f NONE = NONE) /\ (OPTION_JOIN NONE = NONE) /\
!x. OPTION_JOIN (SOME x) = x
- option_case_compute
-
|- case e f x = (if IS_SOME x then f (THE x) else e)
- OPTION_MAP_EQ_SOME
-
|- !f x y. (OPTION_MAP f x = SOME y) = ?z. (x = SOME z) /\ (y = f z)
- OPTION_MAP_EQ_NONE
-
|- !f x. (OPTION_MAP f x = NONE) = (x = NONE)
- OPTION_JOIN_EQ_SOME
-
|- !x y. (OPTION_JOIN x = SOME y) = (x = SOME (SOME y))
- option_case_cong
-
|- !M M' u f.
(M = M') /\ ((M' = NONE) ==> (u = u')) /\
(!x. (M' = SOME x) ==> (f x = f' x)) ==>
(case u f M = case u' f' M')