Equations
Equations
Equations
- Auto.IR.SMT.instInhabitedSIdent = { default := Auto.IR.SMT.SIdent.symb default }
Equations
Instances For
Equations
- Auto.IR.SMT.instToStringSIdent = { toString := Auto.IR.SMT.SIdent.toString }
Equations
Equations
Equations
- Auto.IR.SMT.instInhabitedSSort = { default := Auto.IR.SMT.SSort.bvar default }
Equations
- s.toString binders = Auto.IR.SMT.SSort.toStringAux✝ s binders.toList
Instances For
Caution : Do not use this in define-sort, because sort there might contain bvars
Equations
- Auto.IR.SMT.instToStringSSort = { toString := fun (s : Auto.IR.SMT.SSort) => s.toString #[] }
Equations
Equations
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- (Auto.IR.SMT.SpecConst.str s).toString = "\"" ++ String.join (List.map Auto.IR.SMT.SpecConst.toString.specCharRepr s.toList) ++ "\""
- (Auto.IR.SMT.SpecConst.binary bs).toString = List.foldl (fun (acc : String) (b : Bool) => acc.push (if b = true then '1' else '0')) "#b" bs
- (Auto.IR.SMT.SpecConst.num n).toString = toString (repr n)
Instances For
Equations
- Auto.IR.SMT.SpecConst.toString.specCharRepr c = "\\u{" ++ { data := Nat.toDigits 16 c.toNat } ++ "}"
Instances For
- sConst : SpecConst → STerm
- bvar : Nat → STerm
- qIdApp : QualIdent → Array STerm → STerm
- testerApp : String → STerm → STerm
- letE (name : String) (binding body : STerm) : STerm
- forallE (name : String) (binderType : SSort) (body : STerm) : STerm
- existE (name : String) (binderType : SSort) (body : STerm) : STerm
- matchE (matchTerm : STerm) : Array (MatchCase STerm) → STerm
- attr : STerm → Array Attribute → STerm
Instances For
Equations
Instances For
Equations
- Auto.IR.SMT.STerm.attrApp name attrTerm (term'.attr attrs') = term'.attr (#[Auto.IR.SMT.STerm.attrApp.attr name attrTerm] ++ attrs')
- Auto.IR.SMT.STerm.attrApp name attrTerm term = term.attr #[Auto.IR.SMT.STerm.attrApp.attr name attrTerm]
Instances For
Equations
- Auto.IR.SMT.STerm.attrApp.attr name (Auto.IR.SMT.STerm.sConst (Auto.IR.SMT.SpecConst.str "")) = Auto.IR.SMT.Attribute.none name
- Auto.IR.SMT.STerm.attrApp.attr name (Auto.IR.SMT.STerm.sConst (Auto.IR.SMT.SpecConst.str sym)) = Auto.IR.SMT.Attribute.symb name sym
- Auto.IR.SMT.STerm.attrApp.attr name (Auto.IR.SMT.STerm.sConst c) = Auto.IR.SMT.Attribute.spec name c
- Auto.IR.SMT.STerm.attrApp.attr name attrTerm = Auto.IR.SMT.Attribute.sexpr name #[attrTerm]
Instances For
Equations
- t.toString binders = Auto.IR.SMT.STerm.toStringAux✝ t binders.toList
Instances For
Equations
- Auto.IR.SMT.instToStringSTerm = { toString := fun (t : Auto.IR.SMT.STerm) => t.toString #[] }
Equations
- attr.toString binders = Auto.IR.SMT.STerm.toStringAux.attrToStringAux✝ attr binders.toList
Instances For
Equations
- Auto.IR.SMT.instToStringAttribute = { toString := fun (attr : Auto.IR.SMT.Attribute) => attr.toString #[] }
Equations
- One or more equations did not get rendered due to their size.
Instances For
〈datatype_dec〉 ::= ( 〈constructor_dec〉+ ) | ( par ( 〈symbol 〉+ ) ( 〈constructor_dec〉+ ) )
- cstrDecls : Array ConstrDecl
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
- diagnosticOC : String → SMTOption
- globalDecl : Bool → SMTOption
- interactiveMode : Bool → SMTOption
- printSuccess : Bool → SMTOption
- produceAssertions : Bool → SMTOption
- produceAssignments : Bool → SMTOption
- produceModels : Bool → SMTOption
- produceProofs : Bool → SMTOption
- produceUnsatAssumptions : Bool → SMTOption
- produceUnsatCores : Bool → SMTOption
- randomSeed : Nat → SMTOption
- regularOutputChannel : String → SMTOption
- reproducibleResourceLim : Nat → SMTOption
- verbosity : Nat → SMTOption
- attr : Attribute → SMTOption
Instances For
Equations
- (Auto.IR.SMT.SMTOption.diagnosticOC s).toString = toString ":diagnostic-output-channel " ++ toString s ++ toString ""
- (Auto.IR.SMT.SMTOption.globalDecl b).toString = toString ":global-declarations " ++ toString b ++ toString ""
- (Auto.IR.SMT.SMTOption.interactiveMode b).toString = toString ":interactive-mode " ++ toString b ++ toString ""
- (Auto.IR.SMT.SMTOption.printSuccess b).toString = toString ":print-success " ++ toString b ++ toString ""
- (Auto.IR.SMT.SMTOption.produceAssertions b).toString = toString ":produce-assertions " ++ toString b ++ toString ""
- (Auto.IR.SMT.SMTOption.produceAssignments b).toString = toString ":produce-assignments " ++ toString b ++ toString ""
- (Auto.IR.SMT.SMTOption.produceModels b).toString = toString ":produce-models " ++ toString b ++ toString ""
- (Auto.IR.SMT.SMTOption.produceProofs b).toString = toString ":produce-proofs " ++ toString b ++ toString ""
- (Auto.IR.SMT.SMTOption.produceUnsatAssumptions b).toString = toString ":produce-unsat-assumptions " ++ toString b ++ toString ""
- (Auto.IR.SMT.SMTOption.produceUnsatCores b).toString = toString ":produce-unsat-cores " ++ toString b ++ toString ""
- (Auto.IR.SMT.SMTOption.randomSeed n).toString = toString ":random-seed " ++ toString n ++ toString ""
- (Auto.IR.SMT.SMTOption.regularOutputChannel s).toString = toString ":regular-output-channel " ++ toString s ++ toString ""
- (Auto.IR.SMT.SMTOption.reproducibleResourceLim n).toString = toString ":reproducible-resource-limit " ++ toString n ++ toString ""
- (Auto.IR.SMT.SMTOption.verbosity n).toString = toString ":verbosity " ++ toString n ++ toString ""
- (Auto.IR.SMT.SMTOption.attr a).toString = toString a
Instances For
Equations
〈sorted_var〉 ::= ( 〈symbol〉 〈sort〉 ) 〈datatype_dec〉 ::= ( 〈constructor_dec〉+ ) | ( par ( 〈symbol〉+ ) ( 〈constructor_dec〉+ ) ) 〈function_dec〉 ::= ( 〈symbol〉 ( 〈sorted_var〉∗ ) 〈sort〉 ) 〈function_def〉 ::= 〈symbol〉 ( 〈sorted_var〉∗ ) 〈sort〉 〈term〉 command ::= ( assert 〈term〉 ) ( check-sat ) ... ( declare-fun 〈symbol〉 ( 〈sort〉∗ ) 〈sort〉 ) ( declare-sort 〈symbol〉 〈numeral〉 ) ( define-fun 〈function_def〉 ) ( define-fun-rec 〈function_def〉 ) ( define-funs-rec ( ⟨function_dec⟩ⁿ⁺¹ ) ( ⟨term⟩ⁿ⁺¹ ) ) ( define-sort 〈symbol〉 ( 〈symbol〉∗ ) 〈sort〉 ) ( declare-datatype 〈symbol〉 〈datatype_dec〉) ... ( get-model ) ( get-option 〈keyword〉 ) ( get-proof ) ( get-unsat-assumptions ) ( get-unsat-core ) ... ( set-option 〈option〉 ) ( set-logic 〈symbol 〉 )
- assert (prop : STerm) : Command
- setLogic : String → Command
- setOption : SMTOption → Command
- getModel : Command
- getOption : String → Command
- getProof : Command
- getUnsatAssumptions : Command
- getUnsatCore : Command
- checkSat : Command
- declFun (name : String) (argSorts : Array SSort) (resSort : SSort) : Command
- declSort (name : String) (arity : Nat) : Command
- defFun (isRec : Bool) (name : String) (args : Array (String × SSort)) (resTy : SSort) (body : STerm) : Command
- defFuns : Array (String × Array (String × SSort) × SSort × STerm) → Command
- defSort (name : String) (args : Array String) (body : SSort) : Command
- declDtype (name : String) : DatatypeDecl → Command
- declDtypes : Array (String × Nat × DatatypeDecl) → Command
- echo : String → Command
- exit : Command
Instances For
Equations
- One or more equations did not get rendered due to their size.
- (Auto.IR.SMT.Command.assert prop).toString = toString "(assert " ++ toString prop ++ toString ")"
- (Auto.IR.SMT.Command.setLogic l).toString = "(set-logic " ++ l ++ ")"
- (Auto.IR.SMT.Command.setOption o).toString = toString "(set-option " ++ toString o ++ toString ")"
- Auto.IR.SMT.Command.getModel.toString = "(get-model)"
- (Auto.IR.SMT.Command.getOption s).toString = toString "(get-option " ++ toString s ++ toString ")"
- Auto.IR.SMT.Command.getProof.toString = "(get-proof)"
- Auto.IR.SMT.Command.getUnsatAssumptions.toString = "(get-unsat-assumptions)"
- Auto.IR.SMT.Command.getUnsatCore.toString = "(get-unsat-core)"
- Auto.IR.SMT.Command.checkSat.toString = "(check-sat)"
- (Auto.IR.SMT.Command.declSort name arity).toString = toString "(declare-sort " ++ toString (Auto.IR.SMT.SIdent.symb name) ++ toString " " ++ toString arity ++ toString ")"
- (Auto.IR.SMT.Command.declDtype name ddecl).toString = toString "(declare-datatype " ++ toString (Auto.IR.SMT.SIdent.symb name) ++ toString " " ++ toString ddecl.toString ++ toString ")"
- (Auto.IR.SMT.Command.echo s).toString = toString "(echo \"" ++ toString s ++ toString "\")"
- Auto.IR.SMT.Command.exit.toString = "(exit)"
Instances For
Equations
- Auto.IR.SMT.instToStringCommand = { toString := Auto.IR.SMT.Command.toString }
The main purpose of this state is for name generation and symbol declaration/definition, so we do not distinguish between sort identifiers, datatype identifiers and function identifiers
- h2lMap : Std.HashMap ω String
- l2hMap : Std.HashMap String ω
- usedNames : Std.HashMap String Nat
- wfPredicatesMap : Std.HashMap φ (Option String)
- wfPredicatesInvMap : Std.HashMap String φ
Instances For
Equations
- Auto.IR.SMT.instInhabitedTransM ω φ = { default := fun (x : ST.Ref IO.RealWorld (Auto.IR.SMT.State ω φ)) => throw default }
Equations
- Auto.IR.SMT.getWfPredicatesMap = do let st ← get pure st.wfPredicatesMap
Instances For
Equations
- Auto.IR.SMT.getWfPredicatesInvMap = do let st ← get pure st.wfPredicatesInvMap
Instances For
Equations
- Auto.IR.SMT.hIn e = do let __do_lift ← Auto.IR.SMT.getH2lMap pure (__do_lift.contains e)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Auto.IR.SMT.disposableName nameSuggestion = Auto.IR.SMT.processSuggestedName nameSuggestion
Instances For
Turn high-level construct into low-level symbol Note that this function is idempotent
Equations
- One or more equations did not get rendered due to their size.
Instances For
Like hySymb
but produces names for well-formed predicates of sort s
(of type φ
) rather than of
constructs (of type ω
)
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Auto.IR.SMT.addCommand c = do let commands ← Auto.IR.SMT.getCommands Auto.IR.SMT.setCommands (commands.push c)