ALICe documentation

Model aaron2

«  Bibliography   ::   Contents   ::   Model ackerman  »

Model aaron2

Cited in: [ChawdharyCGSY08].

Tag: complexity.

Figure

../_images/aaron2.png

Source code

model main {

  var tx, x, y;

  states start, lbl_10_1, lbl_9_1, stop;

  transition t_37 := {
    from   := start;
    to     := lbl_10_1;
    guard  := 0 <= tx && y <= x;
    action := y' = tx + y + 1;
  };

  transition t_36 := {
    from   := start;
    to     := lbl_9_1;
    guard  := 0 <= tx && y <= x;
    action := x' = x - tx - 1;
  };

  transition t_34 := {
    from   := start;
    to     := stop;
    guard  := 0 <= tx && x + 1 <= y;
    action := ;
  };

  transition t_21 := {
    from   := start;
    to     := stop;
    guard  := tx + 1 <= 0;
    action := ;
  };

  transition t_32 := {
    from   := lbl_10_1;
    to     := lbl_9_1;
    guard  := 0 <= tx && y <= x;
    action := x' = x - tx - 1;
  };

  transition t_31 := {
    from   := lbl_10_1;
    to     := stop;
    guard  := tx + 1 <= 0 && y <= x;
    action := ;
  };

  transition t_30 := {
    from   := lbl_10_1;
    to     := stop;
    guard  := x + 1 <= y;
    action := ;
  };

  transition t_33 := {
    from   := lbl_10_1;
    to     := lbl_10_1;
    guard  := 0 <= tx && y <= x;
    action := y' = tx + y + 1;
  };

  transition t_29 := {
    from   := lbl_9_1;
    to     := lbl_10_1;
    guard  := 0 <= tx && y <= x;
    action := y' = tx + y + 1;
  };

  transition t_27 := {
    from   := lbl_9_1;
    to     := stop;
    guard  := tx + 1 <= 0 && y <= x;
    action := ;
  };

  transition t_26 := {
    from   := lbl_9_1;
    to     := stop;
    guard  := x + 1 <= y;
    action := ;
  };

  transition t_28 := {
    from   := lbl_9_1;
    to     := lbl_9_1;
    guard  := 0 <= tx && y <= x;
    action := x' = x - tx - 1;
  };

}

strategy main_s {

  Region init := {state = start};

}

Expected invariant

{ lbl_10_1[v1, v2, v3] : v3 <= 1 + v1 + v2 and v1 >= 0; lbl_9_1[v1, v2, v3] : v3 <= 1 + v1 + v2 and v1 >= 0 }

Results

  • With Aspic: { start[tx, x, y]; lbl_10_1[tx, x, y] : y <= 1 + tx + x and tx >= 0; stop[tx, x, y]; lbl_9_1[tx, x, y] : y <= 1 + tx + x and tx >= 0 } (0.05s), OK.
  • With ISL: { stop[tx__1, x__1, y__1] : (tx__1 >= 0 and y__1 <= 1 + tx__1 + x__1 and y__1 >= 1 + x__1) or (tx__1 >= 0 and y__1 <= 1 + tx__1 + x__1 and y__1 >= 1 + x__1) or (tx__1 >= 0 and y__1 >= 1 + x__1 and y__1 <= 1 + tx__1 + x__1) or (tx__1 >= 0 and y__1 >= 1 + x__1 and y__1 <= 1 + tx__1 + x__1) or (tx__1 >= 0 and y__1 >= 1 + x__1 and y__1 <= 1 + tx__1 + x__1) or (tx__1 >= 0 and y__1 <= 1 + tx__1 + x__1 and y__1 >= 1 + x__1) or (tx__1 >= 0 and y__1 >= 1 + x__1 and y__1 <= 1 + tx__1 + x__1) or (tx__1 >= 0 and y__1 >= 1 + x__1 and y__1 <= 1 + tx__1 + x__1) or (tx__1 >= 0 and y__1 >= 1 + x__1 and y__1 <= 1 + tx__1 + x__1) or (tx__1 >= 0 and y__1 <= 1 + tx__1 + x__1 and y__1 >= 1 + x__1) or (tx__1 >= 0 and y__1 >= 1 + x__1 and y__1 <= 1 + tx__1 + x__1) or (tx__1 >= 0 and y__1 <= 1 + tx__1 + x__1 and y__1 >= 1 + x__1) or tx__1 <= -1 or (tx__1 >= 0 and y__1 >= 1 + x__1); lbl_9_1[tx__1, x__1, y__1] : (tx__1 >= 0 and y__1 <= 1 + tx__1 + x__1) or (tx__1 >= 0 and y__1 <= 1 + tx__1 + x__1) or (tx__1 >= 0 and y__1 <= 1 + tx__1 + x__1) or (tx__1 >= 0 and y__1 <= 1 + tx__1 + x__1) or (tx__1 >= 0 and y__1 <= 1 + tx__1 + x__1) or (tx__1 >= 0 and y__1 <= 1 + tx__1 + x__1) or (tx__1 >= 0 and y__1 <= 1 + tx__1 + x__1); lbl_10_1[tx__1, x__1, y__1] : (tx__1 >= 0 and y__1 <= 1 + tx__1 + x__1) or (tx__1 >= 0 and y__1 <= 1 + tx__1 + x__1) or (tx__1 >= 0 and y__1 <= 1 + tx__1 + x__1) or (tx__1 >= 0 and y__1 <= 1 + tx__1 + x__1) or (tx__1 >= 0 and y__1 <= 1 + tx__1 + x__1); start[tx, x, y] } (0.06s), OK.

«  Bibliography   ::   Contents   ::   Model ackerman  »