Qcert.NRA.Typing.TNRAExt


Section TNRAExt.




Typing for NRA

  Context {m:basic_model}.
  Definition nraext_type Op A B := nra_type (nra_of_nraext Op) A B.

  Notation "Op ▷ A >=> B" := (nraext_type Op A B) (at level 70).

Main typing soundness theorem for the Extended NRA
Corrolaries of the main type soudness theorem

  Definition typed_nraext_totalin τout} (op:nraext) (d:data):
    (d τin) (op τin >=> τout)
    { x:data | x τout }.

  Definition tnraext_evalin τout} (op:nraext) (d:data):
    (d τin) (op τin >=> τout) data.
End TNRAExt.


Notation "Op ▷ A >=> B" := (nraext_type Op A B) (at level 70) : nraext_scope.
Notation "Op @▷ d" := (tnraext_eval Op d) (at level 70) : nraext_scope.