shadow Trace summary:

Step 1: State 0 -- shadow.c line 11 [main@0->main@1] "y = f(1);" -> State 1
Step 2: State 1 -- shadow.c line 5 [f@0->f@1] "return x;" -> State 2
Step 3: State 2 -- shadow.c line 12 [main@1->main@2] "assert y == 1;"

shadow Trace details:

begin state 0
  save = true
  onStack = true;
  seen = true;
  pathCondition : true
  begin model state
    begin shared variables
    end shared variables;
    begin process 0
      begin global variables
        x = 7 (int);
      end global variables;
      begin stack frame 0
        function : main;
        location : 0;
        y = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 0.

Step 1: State 0 -- shadow.c line 11 [main@0->main@1] "y = f(1);" -> State 1

begin state 1
  save = false
  onStack = true;
  seen = true;
  pathCondition : true
  begin model state
    begin shared variables
    end shared variables;
    begin process 0
      begin global variables
        x = 7 (int);
      end global variables;
      begin stack frame 1
        function : f;
        location : 0;
        x = 1;
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 0;
        y = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 1.

Step 2: State 1 -- shadow.c line 5 [f@0->f@1] "return x;" -> State 2

begin state 2
  save = false
  onStack = true;
  seen = true;
  pathCondition : true
  begin model state
    begin shared variables
    end shared variables;
    begin process 0
      begin global variables
        x = 7 (int);
      end global variables;
      begin stack frame 0
        function : main;
        location : 1;
        y = 7 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 2.

Step 3: State 2 -- shadow.c line 12 [main@1->main@2] "assert y == 1;"
