| -- { dg-do compile } |
| -- { dg-options "-gnata" } |
| |
| procedure Expr_Func8 is |
| |
| type Node_Set is array (Positive range <>) of Integer; |
| |
| function Nodes return Node_Set is |
| ((1,2,3,4,5,6,7,8,9)); |
| |
| X1 : Boolean := (for all N of Nodes => N = N); |
| |
| function Predecessors (N : Integer) return Node_Set Is |
| (Nodes (1 .. N - 1)); |
| function Successors (N : Integer) return Node_Set Is |
| (Nodes (N + 1 .. Nodes'Last)); |
| |
| pragma Assert |
| (for all N of Nodes => |
| (for some S of Successors (N) => S = N)); |
| |
| X2 : Boolean := |
| (for all N of Nodes => |
| (for some S of Successors (N) => S = N)); |
| |
| X3 : Boolean := |
| (for all N of Nodes => |
| (for some S of Successors (N) => S = N)) with Ghost; |
| |
| pragma Assert |
| (for all N of Nodes => |
| (for all P of Predecessors (N) => |
| (for some S of Successors (P) => S = N))); |
| |
| begin |
| null; |
| end; |