package electrod

  1. Overview
  2. Docs

Helpers for sorting formulas into invariants, and other types of formulas

type goal_color = private
  1. | Static_prop
  2. | Primed_prop
  3. | Invar
  4. | Init
  5. | Trans
  6. | Temporal

Static_prop: a proposition that does not include any variable relation nor any temporal operator. Primed_prop: a propostion that may include variabale and constant relations, without any temporal operator except un-nested X (next) or prime. Invar: proposition of the form always (phi) where phi does not include any temporal operator (the color pf phi is Init or Static_prop). Init: proposition without any temporal operator. Trans: proposition of the form always (phi) where the color of phi is Primed_prop. Temporal: any other proposition.

val to_string : goal_color -> string
val pp : Format.formatter -> goal_color -> unit
val remove_always_from_invar : Elo.fml -> Elo.fml

removes the top level always operator in an invariant elo formula

val add_always_to_invar : Elo.fml -> Elo.fml

adds an always operator to an (invariant) elo formula if the outermost operator is not an always

val color : Elo.t -> Elo.fml -> goal_color

Computes the color of a formula