begin model forall_1
| begin input variables
| | n : int;
| | | forall.c 1.13--2.6: "input {n > 0 && n < 10}int n;"
| end input variables;
| begin output variables
| end output variables;
| begin process 0
| | main function : main;
| | begin function main
| | | | forall.c 6.0--6.11: "void main()"
| | | begin proper local variables
| | | | a : int[n];
| | | | | forall.c 7.1--7.10: "int a[n];"
| | | | i : int;
| | | | | forall.c 8.1--8.7: "int i;"
| | | end proper local variables;
| | | start location : 0;
| | | begin location 0
| | | | kind : ASSIGNMENT;
| | | | i = 0; goto location 1;
| | | | | forall.c 10.6--10.11: "i = 0"
| | | end location 0;
| | | begin location 1
| | | | kind : CHOICE;
| | | | when i < n goto location 2;
| | | | | forall.c 10.1--10.24: "for (i = 0; i < n; i++)"
| | | | when !i < n goto location 4;
| | | | | forall.c 10.1--10.24: "for (i = 0; i < n; i++)"
| | | end location 1;
| | | begin location 2
| | | | kind : ASSIGNMENT;
| | | | a[i] = 1; goto location 3;
| | | | | forall.c 11.2--11.11: "a[i] = 1;"
| | | end location 2;
| | | begin location 3
| | | | kind : ASSIGNMENT;
| | | | i = i+1; goto location 1;
| | | | | forall.c 10.20--10.23: "i++"
| | | end location 3;
| | | begin location 4
| | | | kind : ASSERTION;
| | | | assert forall { int j | 0 <= j && j < n}a[j]==1;  goto location 5;
| | | | | forall.c 13.13--13.60: "assert forall {int j|0 <= j && j < n} a[j] ==1;"
| | | end location 4;
| | | begin location 5
| | | | kind : RETURN;
| | | | return null; goto location 6;
| | | | | forall.c 14.0--14.0: "}"
| | | end location 5;
| | | begin location 6
| | | | kind : TERMINAL;
| | | end location 6;
| | end function main;
| end process 0;
end model forall_1.
