]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/acic_procedural/proceduralTypes.mli
initial implementation of `ncoercion name : type := body on name : pat to pat`
[helm.git] / helm / software / components / acic_procedural / proceduralTypes.mli
index aa6ad3aa58ffa9fbe4ee3e57ccc01b2d3efbe07b..969492a627bd655b63adea098fcdd020cfccf202 100644 (file)
@@ -47,15 +47,19 @@ type pattern  = Cic.annterm
 type body     = Cic.annterm option
 type types    = Cic.anninductiveType list
 type lpsno    = int
+type fields   = (string * bool * int) list
 
 type step = Note of note 
+          | Record of types * lpsno * fields * note
           | Inductive of types * lpsno * note
           | Statement of flavour * name * what * body * note
           | Qed of note
          | Id of note
+         | Exact of what * note          
          | Intros of count option * name list * note
          | Cut of name * what * note
          | LetIn of name * what * note
+         | LApply of name * what * note
          | Rewrite of how * what * where * pattern * note
          | Elim of what * using option * pattern * note
          | Cases of what * pattern * note
@@ -64,6 +68,7 @@ type step = Note of note
          | Clear of hyp list * note
          | ClearBody of hyp * note
          | Branch of step list list * note
+          | Reflexivity of note
 
 val render_steps: 
    (what, inferred, [> `Whd] as 'b, what CicNotationPt.obj, hyp) GrafiteAst.statement list -> 
@@ -75,3 +80,6 @@ val count_steps:
 
 val count_nodes:
    int -> step list -> int
+
+val note_of_step:
+   step -> note