Nullable constructors, typed #
cvc5's Nullable is denoted by Lean's Option, so a nullable term is a Term (Option α) and the
element it carries is a Term α. The index is what tells mkNull which sort to build, where the
sort-erased version takes the element sort.
Constructors #
The null value at Option α.
Equations
- Cvc.Typed.Term.mkNull' α = do let __do_lift ← Cvc.Srt.of α Cvc.Untyped.Term.mkNull __do_lift
Instances For
The nullable value holding elem, nullable.some elem.
Instances For
The element the nullable term nullable holds, nullable.val.
Instances For
Whether the nullable term nullable is null, nullable.is_null.
Instances For
Whether the nullable term nullable holds an element, nullable.is_some.
Instances For
Values #
Whether a term is built by a nullable constructor, nullable.null or nullable.some.
That is what getNullableElem? needs. Being nullable-sorted is not enough: a declared constant of
nullable sort is built by neither.
Instances For
The element a nullable term denotes, or none if it denotes the null value.
Instances For
The nullable term denoting an optional value.
Instances For
The optional value a nullable term denotes.
Instances For
Equations
- Cvc.Typed.Term.instValueToTermOption = { valueToTerm := fun [Cvc.Ω] => Cvc.Typed.Term.mkNullableValue }
Equations
- Cvc.Typed.Term.instTermToValueOption = { termToValue := fun [Cvc.Ω] => Cvc.Typed.Term.getNullableValue }
A nullable literal's case: some none for null, some (some x) for some x.
none if the term is not a literal, such as a declared constant or an ite.
Equations
- One or more equations did not get rendered due to their size.