Skip to content

Commit 211ac4c

Browse files
committed
Add size function to Stmt for calculating statement sizes
1 parent 1ede7aa commit 211ac4c

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

ProgramAnalysis/ProbabilisticPrograms/PWhile.lean

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,17 @@ def Stmt.flow : Stmt → List (Label × Prob × Label)
360360
| .choose l p1 s1 p2 s2 => s1.flow ++ s2.flow ++ [⟨l, p1, s1.init⟩, ⟨l, p2, s2.init⟩]
361361
| .sif _ l s1 s2 => s1.flow ++ s2.flow ++ [⟨l, 1, s1.init⟩, ⟨l, 1, s2.init⟩]
362362
| .swhile _ l s => s.flow ++ [⟨l, 1, s.init⟩] ++ s.final.map (fun l' => ⟨l', 1, l⟩)
363-
363+
364+
def Stmt.size : Stmt → Nat
365+
| .skip _ => 1
366+
| .stop _ => 1
367+
| .assign _ _ _ => 1
368+
| .assign? _ _ _ => 1
369+
| .seq s1 s2 => s1.size + s2.size
370+
| .choose _ _ s1 _ s2 => s1.size + s2.size + 1
371+
| .sif _ _ s1 s2 => s1.size + s2.size + 1
372+
| .swhile _ _ s => s.size + 1
373+
374+
364375

365376
end ProgramAnalysis.ProbabilisticPrograms

0 commit comments

Comments
 (0)