Relates Srt-s to Type-s #
Main class IsSrt (α : Type) associates srt : Srt to α. It guarantees this association works
both ways by asking for a proof that α = srt.toType.
@[reducible, inline]
Retrieves the Srt corresponding to a Type.
Equations
- Cvc.getSrt α = Cvc.IsSrt.srt α
Instances For
@[reducible, inline]
Retrieves the Srt corresponding to a Type.
Equations
Instances For
Instances for simple types #
Equations
- Cvc.IsSrt.instUnit = { srt := Cvc.Srt.unit, h_bij := Cvc.IsSrt.instUnit._proof_1 }
Equations
- Cvc.IsSrt.instBool = { srt := Cvc.Srt.bool, h_bij := Cvc.IsSrt.instBool._proof_1 }
Equations
- Cvc.IsSrt.instInt = { srt := Cvc.Srt.int, h_bij := Cvc.IsSrt.instInt._proof_1 }
Equations
- Cvc.IsSrt.instRat = { srt := Cvc.Srt.real, h_bij := Cvc.IsSrt.instRat._proof_1 }
Equations
- Cvc.IsSrt.instString = { srt := Cvc.Srt.string, h_bij := Cvc.IsSrt.instString._proof_1 }
Equations
- Cvc.IsSrt.instRoundingMode = { srt := Cvc.Srt.roundingMode, h_bij := Cvc.IsSrt.instRoundingMode._proof_1 }
Equations
- Cvc.IsSrt.instRegex = { srt := Cvc.Srt.regex, h_bij := Cvc.IsSrt.instRegex._proof_1 }
Instances for non-Srt-parameterized types #
Equations
- Cvc.IsSrt.instAnyFloat = { srt := Cvc.Srt.float exp sig, h_bij := ⋯ }
Equations
- Cvc.IsSrt.instAbstract = { srt := Cvc.Srt.abstract k, h_bij := ⋯ }
Equations
- Cvc.IsSrt.instFiniteField = { srt := Cvc.Srt.finiteField n, h_bij := ⋯ }
Equations
- Cvc.IsSrt.instBitVec = { srt := Cvc.Srt.bitVec size, h_bij := ⋯ }
Equations
- Cvc.IsSrt.instUninterpreted = { srt := Cvc.Srt.uninterpreted name, h_bij := ⋯ }
Instances composite types #
Equations
- Cvc.IsSrt.instArray = { srt := (Cvc.IsSrt.srt α).seq, h_bij := ⋯ }
Equations
- Cvc.IsSrt.instFunction = { srt := (Cvc.IsSrt.srt α).function (Cvc.IsSrt.srt β), h_bij := ⋯ }
Equations
- Cvc.IsSrt.instProd = { srt := (Cvc.IsSrt.srt α).prod (Cvc.IsSrt.srt β), h_bij := ⋯ }
Equations
- Cvc.IsSrt.instTMap = { srt := (Cvc.IsSrt.srt α).array (Cvc.IsSrt.srt β), h_bij := ⋯ }
Equations
- Cvc.IsSrt.instBag = { srt := (Cvc.IsSrt.srt α).bag, h_bij := ⋯ }
Equations
- Cvc.IsSrt.instSet = { srt := (Cvc.IsSrt.srt α).set, h_bij := ⋯ }
@[reducible, inline]
Proof that the sort associated to α is arithmetic.
Equations
- Cvc.is_arith α = (Cvc.Srt.ofType α).is_arith
Instances For
Equations
- One or more equations did not get rendered due to their size.
@[simp]
Equations
- Cvc.IsSrt.Arith.instInt = { toIsSrt := Cvc.IsSrt.instInt, h_arith := Cvc.IsSrt.Arith.instInt._proof_1 }
Equations
- Cvc.IsSrt.Arith.instRat = { toIsSrt := Cvc.IsSrt.instRat, h_arith := Cvc.IsSrt.Arith.instRat._proof_1 }
def
Cvc.IsSrt.Arith.inspect'
{β : Prop}
(α : Type)
[inst : IsSrt.Arith α]
(fInt : α = Int → β)
(fRat : α = Rat → β)
:
β
Equations
- ⋯ = ⋯
Instances For
def
Cvc.IsSrt.Arith.inspect
{α : Type}
{β : Sort u}
[inst : IsSrt.Arith α]
(fInt : srt α = Srt.int → β)
(fRat : srt α = Srt.real → β)
:
β
Equations
- Cvc.IsSrt.Arith.inspect fInt fRat = ⋯.by_cases fInt fRat