Libelectrod.RawSourceType for "raw" ASTs yielded by the Electrod parser.
type raw_problem = {file : string option;raw_univ : raw_urelements list;raw_decls : raw_declaration list;does not contain 'univ'
*)raw_goal : raw_goal;raw_invar : raw_block;may be empty
*)raw_inst : raw_assignment list;may be empty
*)raw_syms : raw_symmetry list;may be empty
*)}and raw_declaration = private | DConst of Raw_ident.t * int option * raw_scope| DVar of Raw_ident.t * int option * raw_scope * raw_scope optionThe int option is the optionally-declared arity (compulsory for an empty scope).
and raw_scope = private | SExact of raw_bound| SInexact of raw_bound * raw_multiplicity * raw_boundand raw_bound = private | BUniv| BRef of Raw_ident.treference to a previously-defined set
*)| BProd of raw_bound * raw_multiplicity * raw_boundNone/Some (lone/one)
*)| BUnion of raw_bound * raw_bound| BElts of raw_element listA n-tuple (incl. n = 1). inv: nonempty list
asignemnt of tuples to a relation
may be empty
type raw_paragraph = | ParGoal of raw_goal| ParInst of raw_assignment list| ParSym of raw_symmetry list| ParInv of raw_blockThis definition is here just to be used in the parser ((to avoid cyclic dependencies). The puprose of paragraphs is to deal easily and efficiently with permutation of these (see Parse_main for more information).)
val problem :
string option ->
raw_urelements list ->
raw_declaration list ->
raw_goal ->
raw_block ->
raw_assignment list ->
raw_symmetry list ->
raw_problem