@prefix : <http://josd.github.io/eye/reasoning#>.
@prefix r: <http://www.w3.org/2000/10/swap/reason#>.
@prefix var: <http://josd.github.io/var#>.
@prefix skolem: <http://josd.github.io/.well-known/genid/3917894951695475063#>.
@prefix n3: <http://www.w3.org/2004/06/rei#>.

skolem:proof a r:Proof, r:Conjunction;
  r:component skolem:lemma1;
  r:gives {
    5 :state (_:sk_2 0).
    5 :instruction (:halt).
  }.

skolem:lemma1 a r:Inference;
  r:gives {
    5 :state (_:sk_2 0).
    5 :instruction (:halt).
  };
  r:evidence (
    skolem:lemma2
    skolem:lemma3
  );
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_0"]; r:boundTo 5];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_1"]; r:boundTo [ a r:Existential; n3:nodeId "_:sk_2"]];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_2"]; r:boundTo 0];
  r:rule skolem:lemma4.

skolem:lemma2 a r:Inference;
  r:gives {
    5 :state (_:sk_2 0).
  };
  r:evidence (
    skolem:lemma5
    skolem:lemma6
  );
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_0"]; r:boundTo 1];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_1"]; r:boundTo [ a r:Existential; n3:nodeId "_:sk_2"]];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_2"]; r:boundTo 5];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_3"]; r:boundTo 2];
  r:rule skolem:lemma7.

skolem:lemma3 a r:Extraction;
  r:gives {
    5 :instruction (:halt).
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/usm/usmP.n3>].

skolem:lemma4 a r:Extraction;
  r:gives {
    @forAll var:x_0, var:x_1, var:x_2. {var:x_0 :state (var:x_1 var:x_2).
     var:x_0 :instruction (:halt)} => {var:x_0 :state (var:x_1 var:x_2).
     var:x_0 :instruction (:halt)}.
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/usm/usmQ.n3>].

skolem:lemma5 a r:Inference;
  r:gives {
    1 :state (_:sk_2 0).
  };
  r:evidence (
    skolem:lemma8
    skolem:lemma9
  );
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_0"]; r:boundTo 4];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_1"]; r:boundTo [ a r:Existential; n3:nodeId "_:sk_2"]];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_2"]; r:boundTo 0];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_3"]; r:boundTo 1];
  r:rule skolem:lemma10.

skolem:lemma6 a r:Extraction;
  r:gives {
    1 :instruction (:jpz 2 5 2).
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/usm/usmP.n3>].

skolem:lemma7 a r:Extraction;
  r:gives {
    @forAll var:x_0, var:x_1, var:x_2, var:x_3. {var:x_0 :state (var:x_1 0).
     var:x_0 :instruction (:jpz 2 var:x_2 var:x_3)} => {var:x_2 :state (var:x_1 0)}.
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/usm/usmP.n3>].

skolem:lemma8 a r:Inference;
  r:gives {
    4 :state (_:sk_2 0).
  };
  r:evidence (
    skolem:lemma11
    skolem:lemma12
    skolem:lemma13
  );
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_0"]; r:boundTo 3];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_1"]; r:boundTo [ a r:Existential; n3:nodeId "_:sk_1"]];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_2"]; r:boundTo 0];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_3"]; r:boundTo 4];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_4"]; r:boundTo [ a r:Existential; n3:nodeId "_:sk_2"]];
  r:rule skolem:lemma14.

skolem:lemma9 a r:Extraction;
  r:gives {
    4 :instruction (:goto 1).
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/usm/usmP.n3>].

skolem:lemma10 a r:Extraction;
  r:gives {
    @forAll var:x_0, var:x_1, var:x_2, var:x_3. {var:x_0 :state (var:x_1 var:x_2).
     var:x_0 :instruction (:goto var:x_3)} => {var:x_3 :state (var:x_1 var:x_2)}.
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/usm/usmP.n3>].

skolem:lemma11 a r:Inference;
  r:gives {
    3 :state (_:sk_1 0).
  };
  r:evidence (
    skolem:lemma15
    skolem:lemma16
    skolem:lemma17
  );
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_0"]; r:boundTo 2];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_1"]; r:boundTo [ a r:Existential; n3:nodeId "_:sk_1"]];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_2"]; r:boundTo 1];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_3"]; r:boundTo 3];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_4"]; r:boundTo 0];
  r:rule skolem:lemma18.

skolem:lemma12 a r:Extraction;
  r:gives {
    3 :instruction (:inc 1 4).
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/usm/usmP.n3>].

skolem:lemma13 a r:Inference;
  r:gives {
    _:sk_1 :inc _:sk_2.
  };
  r:evidence (
    skolem:lemma19
  );
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_0"]; r:boundTo [ a r:Existential; n3:nodeId "_:sk_0"]];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_1"]; r:boundTo [ a r:Existential; n3:nodeId "_:sk_1"]];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_2"]; r:boundTo [ a r:Existential; n3:nodeId "_:sk_2"]];
  r:rule skolem:lemma20.

skolem:lemma14 a r:Extraction;
  r:gives {
    @forAll var:x_0, var:x_1, var:x_2, var:x_3, var:x_4. {var:x_0 :state (var:x_1 var:x_2).
     var:x_0 :instruction (:inc 1 var:x_3).
     var:x_1 :inc var:x_4} => {var:x_3 :state (var:x_4 var:x_2)}.
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/usm/usmP.n3>].

skolem:lemma15 a r:Inference;
  r:gives {
    2 :state (_:sk_1 1).
  };
  r:evidence (
    skolem:lemma21
    skolem:lemma17
    skolem:lemma6
  );
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_0"]; r:boundTo 1];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_1"]; r:boundTo [ a r:Existential; n3:nodeId "_:sk_1"]];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_2"]; r:boundTo 1];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_3"]; r:boundTo 0];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_4"]; r:boundTo 5];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_5"]; r:boundTo 2];
  r:rule skolem:lemma22.

skolem:lemma16 a r:Extraction;
  r:gives {
    2 :instruction (:dec 2 3).
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/usm/usmP.n3>].

skolem:lemma17 a r:Extraction;
  r:gives {
    0 :inc 1 .
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/usm/usmP.n3>].

skolem:lemma18 a r:Extraction;
  r:gives {
    @forAll var:x_0, var:x_1, var:x_2, var:x_3, var:x_4. {var:x_0 :state (var:x_1 var:x_2).
     var:x_0 :instruction (:dec 2 var:x_3).
     var:x_4 :inc var:x_2} => {var:x_3 :state (var:x_1 var:x_4)}.
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/usm/usmP.n3>].

skolem:lemma19 a r:Inference;
  r:gives {
    _:sk_0 :inc _:sk_1.
  };
  r:evidence (
    skolem:lemma23
  );
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_0"]; r:boundTo 4];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_1"]; r:boundTo [ a r:Existential; n3:nodeId "_:sk_0"]];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_2"]; r:boundTo [ a r:Existential; n3:nodeId "_:sk_1"]];
  r:rule skolem:lemma20.

skolem:lemma20 a r:Extraction;
  r:gives {
    @forAll var:x_0, var:x_1. @forSome var:x_2. {var:x_0 :inc var:x_1} => {var:x_1 :inc var:x_2}.
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/usm/usmP.n3>].

skolem:lemma21 a r:Inference;
  r:gives {
    1 :state (_:sk_1 1).
  };
  r:evidence (
    skolem:lemma24
    skolem:lemma9
  );
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_0"]; r:boundTo 4];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_1"]; r:boundTo [ a r:Existential; n3:nodeId "_:sk_1"]];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_2"]; r:boundTo 1];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_3"]; r:boundTo 1];
  r:rule skolem:lemma10.

skolem:lemma22 a r:Extraction;
  r:gives {
    @forAll var:x_0, var:x_1, var:x_2, var:x_3, var:x_4, var:x_5. {var:x_0 :state (var:x_1 var:x_2).
     var:x_3 :inc var:x_2.
     var:x_0 :instruction (:jpz 2 var:x_4 var:x_5)} => {var:x_5 :state (var:x_1 var:x_2)}.
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/usm/usmP.n3>].

skolem:lemma23 a r:Inference;
  r:gives {
    4 :inc _:sk_0.
  };
  r:evidence (
    skolem:lemma25
  );
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_0"]; r:boundTo 3];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_1"]; r:boundTo 4];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_2"]; r:boundTo [ a r:Existential; n3:nodeId "_:sk_0"]];
  r:rule skolem:lemma20.

skolem:lemma24 a r:Inference;
  r:gives {
    4 :state (_:sk_1 1).
  };
  r:evidence (
    skolem:lemma26
    skolem:lemma12
    skolem:lemma19
  );
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_0"]; r:boundTo 3];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_1"]; r:boundTo [ a r:Existential; n3:nodeId "_:sk_0"]];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_2"]; r:boundTo 1];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_3"]; r:boundTo 4];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_4"]; r:boundTo [ a r:Existential; n3:nodeId "_:sk_1"]];
  r:rule skolem:lemma14.

skolem:lemma25 a r:Extraction;
  r:gives {
    3 :inc 4 .
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/usm/usmP.n3>].

skolem:lemma26 a r:Inference;
  r:gives {
    3 :state (_:sk_0 1).
  };
  r:evidence (
    skolem:lemma27
    skolem:lemma16
    skolem:lemma28
  );
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_0"]; r:boundTo 2];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_1"]; r:boundTo [ a r:Existential; n3:nodeId "_:sk_0"]];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_2"]; r:boundTo 2];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_3"]; r:boundTo 3];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_4"]; r:boundTo 1];
  r:rule skolem:lemma18.

skolem:lemma27 a r:Inference;
  r:gives {
    2 :state (_:sk_0 2).
  };
  r:evidence (
    skolem:lemma29
    skolem:lemma28
    skolem:lemma6
  );
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_0"]; r:boundTo 1];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_1"]; r:boundTo [ a r:Existential; n3:nodeId "_:sk_0"]];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_2"]; r:boundTo 2];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_3"]; r:boundTo 1];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_4"]; r:boundTo 5];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_5"]; r:boundTo 2];
  r:rule skolem:lemma22.

skolem:lemma28 a r:Extraction;
  r:gives {
    1 :inc 2 .
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/usm/usmP.n3>].

skolem:lemma29 a r:Inference;
  r:gives {
    1 :state (_:sk_0 2).
  };
  r:evidence (
    skolem:lemma30
    skolem:lemma9
  );
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_0"]; r:boundTo 4];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_1"]; r:boundTo [ a r:Existential; n3:nodeId "_:sk_0"]];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_2"]; r:boundTo 2];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_3"]; r:boundTo 1];
  r:rule skolem:lemma10.

skolem:lemma30 a r:Inference;
  r:gives {
    4 :state (_:sk_0 2).
  };
  r:evidence (
    skolem:lemma31
    skolem:lemma12
    skolem:lemma23
  );
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_0"]; r:boundTo 3];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_1"]; r:boundTo 4];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_2"]; r:boundTo 2];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_3"]; r:boundTo 4];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_4"]; r:boundTo [ a r:Existential; n3:nodeId "_:sk_0"]];
  r:rule skolem:lemma14.

skolem:lemma31 a r:Inference;
  r:gives {
    3 :state (4 2).
  };
  r:evidence (
    skolem:lemma32
    skolem:lemma16
    skolem:lemma33
  );
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_0"]; r:boundTo 2];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_1"]; r:boundTo 4];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_2"]; r:boundTo 3];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_3"]; r:boundTo 3];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_4"]; r:boundTo 2];
  r:rule skolem:lemma18.

skolem:lemma32 a r:Inference;
  r:gives {
    2 :state (4 3).
  };
  r:evidence (
    skolem:lemma34
    skolem:lemma33
    skolem:lemma6
  );
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_0"]; r:boundTo 1];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_1"]; r:boundTo 4];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_2"]; r:boundTo 3];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_3"]; r:boundTo 2];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_4"]; r:boundTo 5];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_5"]; r:boundTo 2];
  r:rule skolem:lemma22.

skolem:lemma33 a r:Extraction;
  r:gives {
    2 :inc 3 .
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/usm/usmP.n3>].

skolem:lemma34 a r:Inference;
  r:gives {
    1 :state (4 3).
  };
  r:evidence (
    skolem:lemma35
    skolem:lemma9
  );
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_0"]; r:boundTo 4];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_1"]; r:boundTo 4];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_2"]; r:boundTo 3];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_3"]; r:boundTo 1];
  r:rule skolem:lemma10.

skolem:lemma35 a r:Inference;
  r:gives {
    4 :state (4 3).
  };
  r:evidence (
    skolem:lemma36
    skolem:lemma12
    skolem:lemma25
  );
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_0"]; r:boundTo 3];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_1"]; r:boundTo 3];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_2"]; r:boundTo 3];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_3"]; r:boundTo 4];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_4"]; r:boundTo 4];
  r:rule skolem:lemma14.

skolem:lemma36 a r:Inference;
  r:gives {
    3 :state (3 3).
  };
  r:evidence (
    skolem:lemma37
    skolem:lemma16
    skolem:lemma25
  );
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_0"]; r:boundTo 2];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_1"]; r:boundTo 3];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_2"]; r:boundTo 4];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_3"]; r:boundTo 3];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_4"]; r:boundTo 3];
  r:rule skolem:lemma18.

skolem:lemma37 a r:Inference;
  r:gives {
    2 :state (3 4).
  };
  r:evidence (
    skolem:lemma38
    skolem:lemma25
    skolem:lemma6
  );
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_0"]; r:boundTo 1];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_1"]; r:boundTo 3];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_2"]; r:boundTo 4];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_3"]; r:boundTo 3];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_4"]; r:boundTo 5];
  r:binding [ r:variable [ n3:uri "http://josd.github.io/var#x_5"]; r:boundTo 2];
  r:rule skolem:lemma22.

skolem:lemma38 a r:Extraction;
  r:gives {
    1 :state (3 4).
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/usm/usmP.n3>].

