module Block:Tableaux blocks. Blocks contain a set of schemata and a constraint. They are the main pieces of data that rules work with.sig
..end
Author(s): Vincent Aravantinos
See also A Schemata Calculus For Propositional Logic.
type
t
val of_schs_and_cstr : cstr:Constraint.t -> schs:Schema.t list -> t
val schs_of : t -> Schema.t list
val cstr_of : t -> Constraint.t
val is_empty : t -> bool
val to_string : t -> string
val equal : t -> t -> bool
val contains_iterations : t -> bool
true
if some schema in the block contains an iteration.val max_bound : t -> Indexes.t option
None
if no iteration.val dedup : t -> t
val normalize : t -> t
type
branch_update =
| |
Replace_with_schema of |
| |
Replace_with_schemas of |
| |
Replace_with_schema_add_constraint of |
| |
Add_constraint of |
type
branching =
| |
Go_on |
| |
Close |
| |
Update of |
| |
Branch of |
val apply_rules_with_closure : t ->
rules:(sch:Schema.t -> cstr:Constraint.t -> branching) ->
k:(t -> Satisfiability.t) -> Satisfiability.t
Apply the given rules without checking if closure applied
val apply_rules : t ->
rules:(sch:Schema.t -> cstr:Constraint.t -> branching) ->
k:(t -> Satisfiability.t) -> Satisfiability.t
include Purity.Purable
val purity : t -> Purity.t
module LoopingMap:Looping.LoopingMap
with type loopable = t