package libzipperposition
Install
dune-project
Dependency
Authors
Maintainers
Sources
md5=97cdb2f90468e9e27c7bbe3b4fb160bb
sha512=fee73369f673a91dfa9e265fc69be08b32235e10a495f3af6477d404fcd01e3452a0d012b150f3d7f97c00af2f6045019ad039164bf698f70d771231cc4efe5d
doc/libzipperposition.calculi/Libzipperposition_calculi/Arith_int/Make/argument-1-E/ProofState/CQueue/C/index.html
Module CQueue.C
module Ctx = C.Ctxtype t = C.ttype clause = tFlags
type flag = Libzipperposition.SClause.flagval mark_redundant : t -> unitval is_redundant : t -> boolval mark_backward_simplified : t -> unitval is_backward_simplified : t -> boolBasics
include Logtk.Interfaces.EQ with type t := t
include Logtk.Interfaces.HASH with type t := t
include Logtk.Interfaces.EQ with type t := t
val hash : t -> intval id : t -> intval lits : t -> Logtk.Literal.t arrayval is_ground : t -> boolval weight : t -> intmodule Tbl = C.Tblval is_goal : t -> boolLooking at the clause's proof, return true iff the clause is an initial (negated) goal from the problem
val distance_to_goal : t -> int optionSee Proof.distance_to_goal, applied to the clause's proof
val comes_from_goal : t -> booltrue iff the clause is (indirectly) deduced from a goal or lemma
Boolean Abstraction
val pp_trail : Libzipperposition.Trail.t CCFormat.printerPrinter for boolean trails, that uses Ctx to display boxes
val has_trail : t -> boolHas a non-empty trail?
val trail : t -> Libzipperposition.Trail.tGet the clause's trail
val trail_l : t list -> Libzipperposition.Trail.tMerge the trails of several clauses
val update_trail :
(Libzipperposition.Trail.t -> Libzipperposition.Trail.t) ->
t ->
tChange the trail. The resulting clause has same parents, proof and literals as the input one
trail_subsumes c1 c2 = Trail.subsumes (get_trail c1) (get_trail c2)
val is_active : t -> v:Libzipperposition.Trail.valuation -> boolTrue if the clause's trail is active in this valuation
val is_inj_axiom : t -> (Logtk.ID.t * int) optionReturns Some (sym,i) if clause is injectivity axiom for ith argument of symbol sym.
Constructors
val create :
penalty:int ->
trail:Libzipperposition.Trail.t ->
Logtk.Literal.t list ->
Libzipperposition.Clause_intf.proof_step ->
tBuild a new clause from the given literals.
val create_a :
penalty:int ->
trail:Libzipperposition.Trail.t ->
Logtk.Literal.t array ->
Libzipperposition.Clause_intf.proof_step ->
tBuild a new clause from the given literals.
val of_sclause :
?penalty:int ->
Libzipperposition.SClause.t ->
Libzipperposition.Clause_intf.proof_step ->
tval of_forms :
?penalty:int ->
trail:Libzipperposition.Trail.t ->
Logtk.Term.t Logtk.SLiteral.t list ->
Libzipperposition.Clause_intf.proof_step ->
tDirectly from list of formulas
val of_forms_axiom :
?penalty:int ->
file:string ->
name:string ->
Logtk.Term.t Logtk.SLiteral.t list ->
tConstruction from formulas as axiom (initial clause)
val of_statement : ?convert_defs:bool -> Logtk.Statement.clause_t -> t listExtract a clause from a statement, if any
val proof_step : t -> Libzipperposition.Clause_intf.proof_stepExtract its proof from the clause
val proof : t -> Libzipperposition.Clause_intf.proofObtain the pair conclusion, step
val proof_parent : t -> Logtk.Proof.Parent.tval proof_parent_subst :
Logtk.Subst.Renaming.t ->
t Logtk.Scoped.t ->
Logtk.Subst.t ->
Logtk.Proof.Parent.tval update_proof :
t ->
(Libzipperposition.Clause_intf.proof_step ->
Libzipperposition.Clause_intf.proof_step) ->
tupdate_proof c f creates a new clause that is similar to c in all aspects, but with the proof f (proof_step c)
val proof_depth : t -> intval is_empty : t -> boolIs the clause an empty clause?
val length : t -> intNumber of literals
val maxlits : t Logtk.Scoped.t -> Logtk.Subst.t -> CCBV.tList of maximal literals
val is_maxlit : t Logtk.Scoped.t -> Logtk.Subst.t -> idx:int -> boolIs the i-th literal maximal in subst(clause)? Equivalent to Bitvector.get (maxlits ~ord c subst) i
val eligible_res : t Logtk.Scoped.t -> Logtk.Subst.t -> CCBV.tBitvector that indicates which of the literals of subst(clause) are eligible for resolution. THe literal has to be either maximal among selected literals of the same sign, if some literal is selected, or maximal if none is selected.
val eligible_res_no_subst : t -> CCBV.tMore efficient version of eligible_res with Subst.empty
val eligible_param : t Logtk.Scoped.t -> Logtk.Subst.t -> CCBV.tBitvector that indicates which of the literals of subst(clause) are eligible for paramodulation. That means the literal is positive, no literal is selecteed, and the literal is maximal among literals of subst(clause).
val is_eligible_param : t Logtk.Scoped.t -> Logtk.Subst.t -> idx:int -> boolCheck whether the idx-th literal is eligible for paramodulation
val has_selected_lits : t -> booldoes the clause have some selected literals?
val is_selected : t -> int -> boolcheck whether a literal is selected
val selected_lits : t -> (Logtk.Literal.t * int) listget the list of selected literals
val penalty : t -> intval is_unit_clause : t -> boolis the clause a unit clause?
val is_oriented_rule : t -> boolIs the clause a positive oriented clause?
val symbols :
?init:Logtk.ID.Set.t ->
?include_types:bool ->
t Iter.t ->
Logtk.ID.Set.tsymbols that occur in the clause
val to_sclause : t -> Libzipperposition.SClause.tval to_forms : t -> Logtk.Term.t Logtk.SLiteral.t listEasy iteration on an abstract view of literals
val to_s_form : t -> Logtk.TypedSTerm.Form.tIterators
module Seq = C.Seqval apply_subst :
?proof:Logtk.Proof.Step.t option ->
t Logtk.Scoped.t ->
Logtk.Subst.FO.t ->
tFilter literals
module Eligible = C.EligibleSet of clauses
module ClauseSet = C.ClauseSetSimple set
Position
module Pos = C.PosClauses with more data
module WithPos = C.WithPosClause within which a subterm (and its position) are highlighted
IO
val pp : t CCFormat.printerval pp_tstp : t CCFormat.printerval pp_tstp_full : t CCFormat.printerPrint in a cnf() statement
val to_string : t -> stringDebug printing to a string
val pp_set : ClauseSet.t CCFormat.printerval pp_set_tstp : ClauseSet.t CCFormat.printer