Documentation

Cvc.Srt.Extra

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.

class Cvc.IsSrt (α : Type) :

Provides a srt : Srt such that α = srt.toType.

  • srt : Srt

    Srt version of α.

  • h_bij : α = (srt α).toType

    Turning srt into a Type results in α.

Instances
    @[reducible, inline]
    abbrev Cvc.getSrt (α : Type) [I : IsSrt α] :

    Retrieves the Srt corresponding to a Type.

    Equations
    Instances For
      instance Cvc.Srt.instIsSrt (srt : Srt) :
      Equations
      @[reducible, inline]
      abbrev Cvc.Srt.ofType (α : Type) [I : IsSrt α] :

      Retrieves the Srt corresponding to a Type.

      Equations
      Instances For
        @[simp]
        theorem Cvc.Srt.toType_ofType (α : Type) [I : IsSrt α] :
        (ofType α).toType = α
        @[simp]
        theorem Cvc.Srt.ofType_toType (srt : Srt) :
        ofType srt.toType = srt

        Instances for simple types #

        Instances for non-Srt-parameterized types #

        instance Cvc.IsSrt.instAnyFloat {exp sig : UInt32} :
        Equations
        instance Cvc.IsSrt.instBitVec {size : Nat} :
        IsSrt (BitVec size)
        Equations

        Instances composite types #

        instance Cvc.IsSrt.instArray {α : Type} [A : IsSrt α] :
        Equations
        instance Cvc.IsSrt.instFunction {α β : Type} [A : IsSrt α] [B : IsSrt β] :
        IsSrt (αβ)
        Equations
        instance Cvc.IsSrt.instProd {α β : Type} [A : IsSrt α] [B : IsSrt β] :
        IsSrt (α × β)
        Equations
        instance Cvc.IsSrt.instTMap {α β : Type} [A : IsSrt α] [B : IsSrt β] :
        IsSrt (Cvc.TMap α β)
        Equations
        instance Cvc.IsSrt.instBag {α : Type} [A : IsSrt α] :
        Equations
        instance Cvc.IsSrt.instSet {α : Type} [A : IsSrt α] :
        Equations

        Refinement of IsSrt to arithmetic sorts #

        @[reducible, inline]
        abbrev Cvc.is_arith (α : Type) [IsSrt α] :

        Proof that the sort associated to α is arithmetic.

        Equations
        Instances For
          Equations
          • One or more equations did not get rendered due to their size.
          @[simp]
          theorem Cvc.is_arith_def (α : Type) [inst : IsSrt α] :
          Cvc.is_arith αα = Int α = Rat
          Equations
          • =
          Instances For
            class Cvc.IsSrt.Arith (α : Type) extends Cvc.IsSrt α :

            Extends IsSrt with a proof that α's Srt is arithmetic.

            Instances

              Instances for Int and Rat (Real) #

              theorem Cvc.IsSrt.Arith.int_or_rat (α : Type) [inst : IsSrt.Arith α] :
              α = Int α = Rat
              Equations
              • =
              Instances For
                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
                  Instances For