module Schema:Propositional schemata.sig
..end
Includes propositional formulae: P_1, ~P_1, P_1 /\ P_2, P_1 \/ P_2, etc. (propositional variables must be indexed i.e. P,Q,R are forbidden, P_1,Q_1,R_1 are not).
And of course iterated schemata:
/\i=1..n P_i, \/i=1..n P_i.
Author(s): Vincent Aravantinos
typet = private
[< `Bot
| `It of [ `And | `Or ] * Variable.t * Indexes.t * Indexes.t * t
| `Lit of Literal.t
| `Op of [ `And | `Equiv | `Imply | `Or | `Xor ] * t * t
| `Top ]
val bot : t
val top : t
val pos_lit : Proposition.t -> Indexes.t -> t
val neg_lit : Proposition.t -> Indexes.t -> t
val conj : t -> t -> t
val disj : t -> t -> t
val xor : t -> t -> t
val equiv : t -> t -> t
val imply : t -> t -> t
val it_conj : Variable.t -> Indexes.t -> Indexes.t -> t -> t
val it_disj : Variable.t -> Indexes.t -> Indexes.t -> t -> t
val to_string : t -> string
val list_to_string : t list -> string
val print : t -> unit
val equal : t -> t -> bool
val total_compare : t -> t -> int
val max_bound : ?acc:Indexes.t option -> t -> Indexes.t option
None
if no iteration.acc
: the maximum will be also checked against acc.val contains_iterations : t -> bool
true
if the schema contains iterations, false
else.val neg : t -> t
val unfold_and_once : var:Variable.t -> sch:t -> t1:Indexes.t -> t2:Indexes.t -> t
var
: variable of the returned iteration.t1
: lower bound of the returned iteration.t2
: upper bound of the returned iteration.val unfold_or_once : var:Variable.t -> sch:t -> t1:Indexes.t -> t2:Indexes.t -> t
exception Non_regular
val get_param : t -> Variable.t option
Non_regular
if the schema has more than one parameter.val is_regular : t -> bool
true
if the schema is regular.val compute_schema : t -> int -> Formula.t
Non_regular
if the schema has more than one parameter.val expr_involving_param : t -> Indexes.t option
include Purity.Purable
include Substitution.Substituable
module PropSubs:Substitution.Substituable
with type substituable = t and type term = Proposition.t and type variable = Proposition.t
module LoopingMap:Looping.LoopingMap
with type loopable = t