@[reducible, inline]
Equations
Instances For
Abstraction over an heterogeneous, strongly-typed function symbol structure.
Users will typically manipulate structures dealing with heterogeneously-typed symbols so that they
can represent, for instance, the state of a transition systems. This class abstracts over such
structures so that cvc.lean can provide helpers for declaring function symbols, retrieving their
(strongly-typed) value, etc.
- mapM {R R' : Symbol.Repr} {m : Type → Type} [Monad m] (repr : Struct R) (f : {α : Type} → [inst : IsSrt α] → R α → m (R' α)) : m (Struct R')
Monadic map over a
Struct _. - forIn {R : Symbol.Repr} {β : Type} {m : Type → Type} [Monad m] (symbols : Struct R) (init : β) (f : {α : Type} → [inst : IsSrt α] → R α → β → m (ForInStep β)) : m β
ForIn-like iteration/fold overESymbol _elements.
Instances
def
Cvc.Symbols.map
{Struct : Symbols.Repr}
[Syms : Symbols Struct]
{R G : Symbol.Repr}
(symbols : Struct R)
(f : {α : Type} → [inst : IsSrt α] → R α → G α)
:
Struct G
Maps over the symbols in a Struct F.
Equations
- Cvc.Symbols.map symbols f = Cvc.Symbols.mapM symbols fun {α : Type} [Cvc.IsSrt α] => f
Instances For
@[defaultInstance 1000]
instance
Cvc.Symbols.instForIn
{Struct : Symbols.Repr}
[Syms : Symbols Struct]
{m : Type → Type}
{R : Symbol.Repr}
:
Equations
- One or more equations did not get rendered due to their size.
@[reducible, inline]
Equations
- Cvc.Symbols.Idents = Struct fun (x : Type) [Cvc.IsSrt x] => Cvc.Symbol.Ident x
Instances For
@[reducible, inline]
Equations
- Cvc.Symbols.Terms = Struct fun (x : Type) [Cvc.IsSrt x] => Cvc.Symbol.Term x
Instances For
@[reducible, inline]
Equations
- Cvc.Symbols.Values = Struct fun (x : Type) [Cvc.IsSrt x] => Cvc.Symbol.Value x
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
abbrev
Cvc.Symbols.FunT
{Struct : Symbols.Repr}
[Syms : Symbols Struct]
(m : Type → Type u_1)
(α : Type)
:
Type u_1
Equations
- Cvc.Symbols.FunT m α = (Cvc.Symbols.Terms → Cvc.Term.BuildT m (Cvc.Term α))
Instances For
@[reducible, inline]
abbrev
Cvc.Symbols.FunctionT
{Struct : Symbols.Repr}
[Syms : Symbols Struct]
(m : Type → Type u_1)
(α : Type)
:
Type u_1
Equations
Instances For
@[reducible, inline]
abbrev
Cvc.Symbols.PredT
{Struct : Symbols.Repr}
[Syms : Symbols Struct]
(m : Type → Type u_1)
:
Type u_1
Equations
Instances For
@[reducible, inline]
abbrev
Cvc.Symbols.PredicateT
{Struct : Symbols.Repr}
[Syms : Symbols Struct]
(m : Type → Type u_1)
:
Type u_1
Equations
Instances For
@[reducible, inline]
abbrev
Cvc.Symbols.RelT
{Struct : Symbols.Repr}
[Syms : Symbols Struct]
(m : Type → Type u_1)
:
Type u_1
Equations
Instances For
@[reducible, inline]
abbrev
Cvc.Symbols.RelationT
{Struct : Symbols.Repr}
[Syms : Symbols Struct]
(m : Type → Type u_1)
:
Type u_1
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
Ident-specific helpers #
def
Cvc.Symbols.Idents.mapM
{Struct : Symbols.Repr}
[Syms : Symbols Struct]
(idents : Idents)
{m : Type → Type}
{R : Symbol.Repr}
[Monad m]
(f : {α : Type} → [inst : IsSrt α] → Symbol.Ident α → m (R α))
:
m (Struct R)
Equations
- idents.mapM f = Cvc.Symbols.mapM idents fun {α : Type} [Cvc.IsSrt α] (sym : Cvc.Symbol.Ident α) => f sym
Instances For
def
Cvc.Symbols.Idents.map
{Struct : Symbols.Repr}
[Syms : Symbols Struct]
(idents : Idents)
{R : Symbol.Repr}
(f : {α : Type} → [inst : IsSrt α] → Symbol.Ident α → R α)
:
Struct R
Instances For
Equations
- idents.declare = idents.mapM fun {α : Type} [Cvc.IsSrt α] (ident : Cvc.Symbol.Ident α) => Cvc.Symbol.declare ident
Instances For
Term-specific helpers #
def
Cvc.Symbols.Terms.mapM
{Struct : Symbols.Repr}
[Syms : Symbols Struct]
(terms : Terms)
{m : Type → Type}
{R : Symbol.Repr}
[Monad m]
(f : {α : Type} → [inst : IsSrt α] → Symbol.Term α → m (R α))
:
m (Struct R)
Equations
- terms.mapM f = Cvc.Symbols.mapM terms fun {α : Type} [Cvc.IsSrt α] => f
Instances For
def
Cvc.Symbols.Terms.map
{Struct : Symbols.Repr}
[Syms : Symbols Struct]
(terms : Terms)
{R : Symbol.Repr}
(f : {α : Type} → [inst : IsSrt α] → Symbol.Term α → R α)
:
Struct R
Instances For
Retrieves the values of all symbols in a sat context.
Instances For
Retrieves the values of all symbols in a sat context.
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
- Cvc.Symbols.AliasDsl.Idents.id_PredicateT = Lean.mkIdent `PredicateT
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
- Cvc.Symbols.AliasDsl.Idents.idRef_Term_BuildT = Lean.mkIdent `Cvc.Term.BuildT
Instances For
Equations
- Cvc.Symbols.AliasDsl.Idents.idRef_Symbol = Lean.mkIdent `Cvc.Symbol
Instances For
Equations
- Cvc.Symbols.AliasDsl.Idents.idRef_Symbol_Repr = Lean.mkIdent `Cvc.Symbol.Repr
Instances For
Equations
- Cvc.Symbols.AliasDsl.Idents.idRef_Symbol_mkIdent = Lean.mkIdent `Cvc.Symbol.mkIdent
Instances For
Equations
- Cvc.Symbols.AliasDsl.Idents.idRef_Symbols = Lean.mkIdent `Cvc.Symbols
Instances For
Generates all Cvc.Symbols aliases.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Generates all Cvc.Symbols aliases.
Equations
- One or more equations did not get rendered due to their size.