reserve m,n for Nat,
  I for Program of SCM+FSA,
  s,s1,s2 for State of SCM+FSA,
  a for Int-Location,
  f for FinSeq-Location,
  p,p1,p2 for Instruction-Sequence of SCM+FSA;

theorem
  for s being State of SCM+FSA,
      I,J being InitHalting really-closed MacroInstruction of SCM+FSA,
 a being read-write Int-Location holds IC IExec(if=0(a,I,J),p,s) =  (card
I + card J + 3) & (s.a = 0 implies ((for d being Int-Location
 holds IExec(if=0(a,I,J),p,s).d = IExec(I,p,s).d) &
  for f being FinSeq-Location
 holds IExec(if=0(a,I,J),p,s).f = IExec(I,p,s).f)) & (s.a <> 0 implies
   ((for d being Int-Location holds
  IExec(if=0(a,I,J),p,s).d = IExec(J,p,s).d) &
  for f being FinSeq-Location holds
  IExec(if=0(a,I,J),p,s).f = IExec(J,p,s).f))
proof
  let s be State of SCM+FSA;
  let I,J be InitHalting really-closed MacroInstruction of SCM+FSA;
  let a be read-write Int-Location;
  hereby
    per cases;
    suppose
      s.a = 0;
      then
      IExec(if=0(a,I,J),p,s) = IExec(I,p,s) +* Start-At((card I + card
      J + 3),SCM+FSA) by Th33;
      hence IC IExec(if=0(a,I,J),p,s) =  (card I + card J + 3) by FUNCT_4:113;
    end;
    suppose
      s.a <> 0;
      then
      IExec(if=0(a,I,J),p,s) = IExec(J,p,s) +* Start-At((card I + card
      J + 3),SCM+FSA) by Th33;
      hence IC IExec(if=0(a,I,J),p,s) =  (card I + card J + 3) by FUNCT_4:113;
    end;
  end;
  hereby
    assume s.a = 0;
    then
A1: IExec(if=0(a,I,J),p,s) = IExec(I,p,s) +* Start-At((card I + card J
    + 3),SCM+FSA) by Th33;
    hereby
      let d be Int-Location;
      not d in dom Start-At((card I + card J + 3),SCM+FSA)
      by SCMFSA_2:102;
      hence IExec(if=0(a,I,J),p,s).d = IExec(I,p,s).d by A1,FUNCT_4:11;
    end;
    let f be FinSeq-Location;
    not f in dom Start-At((card I + card J + 3),SCM+FSA)
    by SCMFSA_2:103;
    hence IExec(if=0(a,I,J),p,s).f = IExec(I,p,s).f by A1,FUNCT_4:11;
  end;
  assume s.a <> 0;
  then
A2: IExec(if=0(a,I,J),p,s) = IExec(J,p,s) +* Start-At((card I + card J +
  3),SCM+FSA) by Th33;
  hereby
    let d be Int-Location;
    not d in dom Start-At((card I + card J + 3),SCM+FSA) by SCMFSA_2:102;
    hence IExec(if=0(a,I,J),p,s).d = IExec(J,p,s).d by A2,FUNCT_4:11;
  end;
  let f be FinSeq-Location;
  not f in dom Start-At((card I + card J + 3),SCM+FSA) by SCMFSA_2:103;
  hence thesis by A2,FUNCT_4:11;
end;
