Parses a formula into a tree representation, where each node contains a connective. The tree structure then supports simplification and recombination of formulae.
Checks One-Step satisfaction for GML formulae by setting up counters for each relation and then recursively handling all boxes and diamonds for one relation independently.
(* ; (Constant colors, ost mkRule_Const colors) *)(* this is an issue because we can't bind this here... *)
;(Identity,ThismkRule_Identity)
;(Choice,ThismkRule_Choice)
;(Fusion,ThismkRule_Fusion)
;(GML,ThatoneStepSat_GML)
]
letovalod=matchowith
|None->d()
|Somev->v
letobindof=matchowith
|None->None
|Somev->fv
letgetExpandingFunctionProducerfunc=oval(obind(List.assoc_optfuncimplementationLookup)getTableau)(fun_->raise(CoAlgFormula.CoAlgException("one-step tableau based satisfiability is not implemented for "^string_of_functorfunc)))
letoneStepSatisfiabilityfunc=oval(obind(List.assoc_optfuncimplementationLookup)getOneStepFun)(fun_->raise(CoAlgFormula.CoAlgException("one-step function based satisfiability is not implemented for "^string_of_functorfunc)))