def
finFunToBitVec
{carry : Type u_1}
(c : carry → Bool)
[FinEnum carry]
:
BitVec (FinEnum.card carry)
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- bitVecToFinFun bv c = bv[FinEnum.equiv.toFun c]
Instances For
Transforms an FSM
of arity k
to an NFA
of arity k+1
.
This correponds to transforming a function with k
inputs and
one output to a k+1
-ary relation. By convention, the output
is the MSB of the alphabet.
Equations
- One or more equations did not get rendered due to their size.
Instances For
partial def
NFA.ofFSM.go
{arity : Type}
[FinEnum arity]
(p : AutoStructs.FSM arity)
[FinEnum p.α]
(st : fsm.State (FinEnum.card p.α))
:
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
- One or more equations did not get rendered due to their size.
Instances For
Equations
- liftMaxSucc1 n m k = if x : k = ↑n then ↑↑(Fin.last (max n m)) else Fin.castLE ⋯ k
Instances For
Equations
- liftExcecpt2 n k = Fin.castLE ⋯ k
Instances For
Equations
- AutoStructs.Relation.eq.autOfRelation = NFA.autEq
- (AutoStructs.Relation.signed ord).autOfRelation = NFA.autSignedCmp ord
- (AutoStructs.Relation.unsigned ord).autOfRelation = NFA.autUnsignedCmp ord
Instances For
def
binopNfa
{A : Type}
[BEq A]
[FinEnum A]
[Hashable A]
(op : AutoStructs.Binop)
(m1 : NFA A)
(m2 : NFA A)
:
NFA A
Equations
- binopNfa AutoStructs.Binop.and m1 m2 = m1.inter m2
- binopNfa AutoStructs.Binop.or m1 m2 = m1.union m2
- binopNfa AutoStructs.Binop.impl m1 m2 = m1.neg.union m2
- binopNfa AutoStructs.Binop.equiv m1 m2 = (m1.neg.union m2).inter (m2.neg.union m1)
Instances For
Equations
- One or more equations did not get rendered due to their size.
- nfaOfFormula (AutoStructs.Formula.unop op φ_2) = unopNfa op (nfaOfFormula φ_2)
- nfaOfFormula (AutoStructs.Formula.binop op φ1 φ2) = binopNfa op ((nfaOfFormula φ1).lift (liftMax1 φ1.arity φ2.arity)) ((nfaOfFormula φ2).lift (liftMax2 φ1.arity φ2.arity))
Instances For
Equations
- formulaIsUniversal f = (nfaOfFormula f).isUniversal'
Instances For
axiom
decision_procedure_is_correct
{w : ℕ}
(φ : AutoStructs.Formula)
(env : ℕ → BitVec w)
:
formulaIsUniversal φ = true → φ.sat' env