forked from HIPERFIT/contracts
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathILSyntax.v
30 lines (24 loc) · 885 Bytes
/
ILSyntax.v
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
(* Add LoadPath "..". *)
Require Import Reals Syntax.
Inductive ILTExpr : Set :=
ILTplus (e1 : ILTExpr) (e2 : ILTExpr)
| ILTexpr (e : TExpr).
Inductive ILTExprZ : Set :=
ILTplusZ (e1 : ILTExprZ) (e2 : ILTExprZ)
| ILTexprZ (e : ILTExpr)
| ILTnumZ (z : Z).
Inductive ILBinOp : Set := ILAdd | ILSub | ILMult | ILDiv | ILAnd | ILOr |
ILLess | ILLessN | ILLeq | ILEqual.
Inductive ILUnOp : Set := ILNot | ILNeg.
Inductive ILExpr : Set :=
| ILIf : ILExpr -> ILExpr -> ILExpr -> ILExpr
| ILFloat : R -> ILExpr
| ILNat : nat -> ILExpr
| ILBool : bool -> ILExpr
| ILtexpr : ILTExpr -> ILExpr
| ILNow : ILExpr
| ILModel : ObsLabel -> ILTExprZ -> ILExpr
| ILUnExpr : ILUnOp -> ILExpr -> ILExpr
| ILBinExpr : ILBinOp -> ILExpr -> ILExpr -> ILExpr
| ILLoopIf : ILExpr -> ILExpr -> ILExpr -> TExpr -> ILExpr
| ILPayoff : ILTExpr -> Party -> Party -> ILExpr.