Require Import String.
Require Import ZArith.
Inductive val : Type :=
| Vbool : bool -> val
| Vint : Z -> val
| Vstr : string -> val.
Inductive op1 : Type :=
| Oneg
| Onot.
Inductive op2 : Type :=
| Oadd
| Osub
| Omul
| Odiv
| Omod
| Oeq
| Olt
| Ole
| Oconj
| Odisj.
Inductive expr : Type :=
| Eval : val -> expr
| Evar : string -> expr
| Eop1 : op1 -> expr -> expr
| Eop2 : op2 -> expr -> expr -> expr.
Definition store : Type :=
list (string * val).
Definition heap : Type :=
list val.
Inductive stmt : Type :=
| Snop : stmt
| Sset : string -> expr -> stmt
| Sifelse : expr -> stmt -> stmt -> stmt
| Swhile : expr -> stmt -> stmt
| Sseq : stmt -> stmt -> stmt.
Require Import ZArith.
Inductive val : Type :=
| Vbool : bool -> val
| Vint : Z -> val
| Vstr : string -> val.
Inductive op1 : Type :=
| Oneg
| Onot.
Inductive op2 : Type :=
| Oadd
| Osub
| Omul
| Odiv
| Omod
| Oeq
| Olt
| Ole
| Oconj
| Odisj.
Inductive expr : Type :=
| Eval : val -> expr
| Evar : string -> expr
| Eop1 : op1 -> expr -> expr
| Eop2 : op2 -> expr -> expr -> expr.
Definition store : Type :=
list (string * val).
Definition heap : Type :=
list val.
Inductive stmt : Type :=
| Snop : stmt
| Sset : string -> expr -> stmt
| Sifelse : expr -> stmt -> stmt -> stmt
| Swhile : expr -> stmt -> stmt
| Sseq : stmt -> stmt -> stmt.
This page has been generated by coqdoc