This module implements parsers and serializers for both the binary and non-binary LRAT format.
@[inline]
Instances For
@[inline]
Equations
- Std.Tactic.BVDecide.LRAT.Parser.Text.parsePos = do let ident ← Std.Internal.Parsec.ByteArray.digits if (ident == 0) = true then Std.Internal.Parsec.fail "id was 0" else pure ident
Instances For
@[inline]
Equations
Instances For
@[inline]
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[inline]
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[inline]
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Instances For
@[inline]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[inline]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[specialize #[]]
def
Std.Tactic.BVDecide.LRAT.Parser.Binary.manyTillZero
{α : Type}
(parser : Std.Internal.Parsec.ByteArray.Parser α)
:
Instances For
@[specialize #[]]
partial def
Std.Tactic.BVDecide.LRAT.Parser.Binary.manyTillZero.go
{α : Type}
(parser : Std.Internal.Parsec.ByteArray.Parser α)
(acc : Array α)
:
@[specialize #[]]
def
Std.Tactic.BVDecide.LRAT.Parser.Binary.manyTillNegOrZero
{α : Type}
(parser : Std.Internal.Parsec.ByteArray.Parser α)
:
Instances For
@[specialize #[]]
partial def
Std.Tactic.BVDecide.LRAT.Parser.Binary.manyTillNegOrZero.go
{α : Type}
(parser : Std.Internal.Parsec.ByteArray.Parser α)
(acc : Array α)
:
Equations
- Std.Tactic.BVDecide.LRAT.Parser.Binary.parseRes = do let lhs ← Std.Tactic.BVDecide.LRAT.Parser.Binary.parseNeg let idents ← Std.Tactic.BVDecide.LRAT.Parser.Binary.parseIdList pure (lhs, idents)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Std.Tactic.BVDecide.LRAT.Parser.Binary.parseActions = do let actions ← Std.Internal.Parsec.many Std.Tactic.BVDecide.LRAT.Parser.Binary.parseAction Std.Internal.Parsec.eof pure actions
Instances For
Based on the first byte parses the input either as a binary or non-binary LRAT.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Read and parse an LRAT proof from path
. path
may contain either the binary or the non-binary
LRAT format.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Parse proof
as an LRAT proof. proof
may contain either the binary or the non-binary LRAT format.
Equations
Instances For
Serialize proof
into the non-binary LRAT format as a String
.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Instances For
Serialize proof
into the binary LRAT format as a ByteArray
.
Equations
- Std.Tactic.BVDecide.LRAT.lratProofToBinary proof = Std.Tactic.BVDecide.LRAT.lratProofToBinary.go proof 0 (ByteArray.mkEmpty (4 * proof.size))
Instances For
partial def
Std.Tactic.BVDecide.LRAT.lratProofToBinary.go
(proof : Array Std.Tactic.BVDecide.LRAT.IntAction)
(idx : Nat)
(acc : ByteArray)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
partial def
Std.Tactic.BVDecide.LRAT.lratProofToBinary.variableLengthEncode
(acc : ByteArray)
(lit : UInt64)
:
@[inline]
Equations
- Std.Tactic.BVDecide.LRAT.lratProofToBinary.startAdd acc = acc.push 'a'.toUInt8
Instances For
@[inline]
Equations
- Std.Tactic.BVDecide.LRAT.lratProofToBinary.startDelete acc = acc.push 'd'.toUInt8
Instances For
@[inline]
Instances For
@[inline]
Equations
Instances For
def
Std.Tactic.BVDecide.LRAT.dumpLRATProof
(path : System.FilePath)
(proof : Array Std.Tactic.BVDecide.LRAT.IntAction)
(binaryProofs : Bool)
:
Dump proof
into path
, either in the binary or non-binary LRAT format, depending on binaryProofs
.
Equations
- One or more equations did not get rendered due to their size.