Module Locus
type 'a or_var=|ArgArg of 'a|ArgVar of Names.lident
Occurrences
type 'a occurrences_gen=|AllOccurrences|AtLeastOneOccurrence|AllOccurrencesBut of 'a listnon-empty
|NoOccurrences|OnlyOccurrences of 'a listnon-empty
type occurrences_expr= int or_var occurrences_gentype 'a with_occurrences= occurrences_expr * 'atype occurrences= int occurrences_gen
Locations
Selecting the occurrences in body (if any), in type, or in both
Abstract clauses expressions
A clause_expr (and its instance clause) denotes occurrences and hypotheses in a goal in an abstract way; in particular, it can refer to the set of all hypotheses independently of the effective contents of the current goal
Concerning the field onhyps:
Nonemeans *on every hypothesis*Some lmeans on hypothesis belonging to l
type 'a hyp_location_expr= 'a with_occurrences * hyp_location_flagtype 'id clause_expr={onhyps : 'id hyp_location_expr list option;concl_occs : occurrences_expr;}type clause= Names.Id.t clause_expr
Concrete view of occurrence clauses
type clause_atom=|OnHyp of Names.Id.t * occurrences_expr * hyp_location_flag|OnConcl of occurrences_expr
type concrete_clause= clause_atom list
A weaker form of clause with no mention of occurrences
type hyp_location= Names.Id.t * hyp_location_flag
type goal_location= hyp_location option
Simple clauses, without occurrences nor location
type simple_clause= Names.Id.t option list