PREFIX e: <http://eulersharp.sourceforge.net/2003/03swap/log-rules#>
PREFIX : <http://josd.github.io/eye/reasoning#>
PREFIX r: <http://www.w3.org/2000/10/swap/reason#>

[] a r:Proof, r:Conjunction;
  r:component <#lemma1>;
  r:gives {
    ((1 1 1 1 1 1 1 1 1) (0 0 0)) :testgcc ((0 0 1) (0 1 1) (0 1 0) (1 1 0) (1 1 1) (1 0 1) (1 0 0) (0 0 0) (0 0 1)).
  }.

<#lemma1> a r:Inference;
  r:gives {
    ((1 1 1 1 1 1 1 1 1) (0 0 0)) :testgcc ((0 0 1) (0 1 1) (0 1 0) (1 1 0) (1 1 1) (1 0 1) (1 0 0) (0 0 0) (0 0 1)).
  };
  r:evidence (
    <#lemma2>
  );
  r:rule <#lemma3>.

<#lemma2> a r:Inference;
  r:gives {
    ((1 1 1 1 1 1 1 1 1) (0 0 0)) :testgcc ((0 0 1) (0 1 1) (0 1 0) (1 1 0) (1 1 1) (1 0 1) (1 0 0) (0 0 0) (0 0 1)).
  };
  r:evidence (
    [ a r:Fact; r:gives {(1 1 1 1 1 1 1 1 1) e:firstRest (1 (1 1 1 1 1 1 1 1))}]
    [ a r:Fact; r:gives {((0 0 1) (0 1 1) (0 1 0) (1 1 0) (1 1 1) (1 0 1) (1 0 0) (0 0 0) (0 0 1)) e:firstRest ((0 0 1) ((0 1 1) (0 1 0) (1 1 0) (1 1 1) (1 0 1) (1 0 0) (0 0 0) (0 0 1)))}]
    <#lemma4>
    <#lemma5>
  );
  r:rule <#lemma6>.

<#lemma3> a r:Extraction;
  r:gives {
    {((1 1 1 1 1 1 1 1 1) (0 0 0)) :testgcc ?x_0_1} => {((1 1 1 1 1 1 1 1 1) (0 0 0)) :testgcc ?x_0_1}.
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/gcc/gccQ.n3>].

<#lemma4> a r:Inference;
  r:gives {
    (1 (0 0 0)) :gcc (0 0 1).
  };
  r:evidence (
    <#lemma7>
    <#lemma8>
    <#lemma9>
    <#lemma9>
    <#lemma10>
  );
  r:rule <#lemma11>.

<#lemma5> a r:Inference;
  r:gives {
    ((1 1 1 1 1 1 1 1) (0 0 1)) :testgcc ((0 1 1) (0 1 0) (1 1 0) (1 1 1) (1 0 1) (1 0 0) (0 0 0) (0 0 1)).
  };
  r:evidence (
    [ a r:Fact; r:gives {(1 1 1 1 1 1 1 1) e:firstRest (1 (1 1 1 1 1 1 1))}]
    [ a r:Fact; r:gives {((0 1 1) (0 1 0) (1 1 0) (1 1 1) (1 0 1) (1 0 0) (0 0 0) (0 0 1)) e:firstRest ((0 1 1) ((0 1 0) (1 1 0) (1 1 1) (1 0 1) (1 0 0) (0 0 0) (0 0 1)))}]
    <#lemma12>
    <#lemma13>
  );
  r:rule <#lemma6>.

<#lemma6> a r:Extraction;
  r:gives {
    {(?x_0_2 ?x_6_2) :testgcc ?x_3_2} <= {?x_0_2 e:firstRest (?x_1_2 ?x_2_2).
     ?x_3_2 e:firstRest (?x_4_2 ?x_5_2).
     (?x_1_2 ?x_6_2) :gcc ?x_4_2.
     (?x_2_2 ?x_4_2) :testgcc ?x_5_2}.
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/gcc/gcc.n3>].

<#lemma7> a r:Inference;
  r:gives {
    (0 0 0) :netb (0 0).
  };
  r:evidence (
    <#lemma14>
    <#lemma15>
    <#lemma16>
    <#lemma15>
    <#lemma17>
    <#lemma18>
    <#lemma18>
  );
  r:rule <#lemma19>.

<#lemma8> a r:Inference;
  r:gives {
    (0 0) :neta 1 .
  };
  r:evidence (
    <#lemma14>
    <#lemma15>
    <#lemma15>
    <#lemma20>
    <#lemma21>
  );
  r:rule <#lemma22>.

<#lemma9> a r:Inference;
  r:gives {
    (0 1 0) :dff 0 .
  };
  r:evidence (
    [ a r:Fact; r:gives true]
  );
  r:rule <#lemma23>.

<#lemma10> a r:Inference;
  r:gives {
    (1 1 0) :dff 1 .
  };
  r:evidence (
    [ a r:Fact; r:gives true]
  );
  r:rule <#lemma23>.

<#lemma11> a r:Extraction;
  r:gives {
    {(?x_6_3 (?x_0_3 ?x_1_3 ?x_2_3)) :gcc (?x_7_3 ?x_8_3 ?x_9_3)} <= {(?x_0_3 ?x_1_3 ?x_2_3) :netb (?x_3_3 ?x_4_3).
     (?x_0_3 ?x_1_3) :neta ?x_5_3.
     (?x_3_3 ?x_6_3 ?x_0_3) :dff ?x_7_3.
     (?x_4_3 ?x_6_3 ?x_1_3) :dff ?x_8_3.
     (?x_5_3 ?x_6_3 ?x_2_3) :dff ?x_9_3}.
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/gcc/gcc.n3>].

<#lemma12> a r:Inference;
  r:gives {
    (1 (0 0 1)) :gcc (0 1 1).
  };
  r:evidence (
    <#lemma24>
    <#lemma8>
    <#lemma9>
    <#lemma10>
    <#lemma25>
  );
  r:rule <#lemma11>.

<#lemma13> a r:Inference;
  r:gives {
    ((1 1 1 1 1 1 1) (0 1 1)) :testgcc ((0 1 0) (1 1 0) (1 1 1) (1 0 1) (1 0 0) (0 0 0) (0 0 1)).
  };
  r:evidence (
    [ a r:Fact; r:gives {(1 1 1 1 1 1 1) e:firstRest (1 (1 1 1 1 1 1))}]
    [ a r:Fact; r:gives {((0 1 0) (1 1 0) (1 1 1) (1 0 1) (1 0 0) (0 0 0) (0 0 1)) e:firstRest ((0 1 0) ((1 1 0) (1 1 1) (1 0 1) (1 0 0) (0 0 0) (0 0 1)))}]
    <#lemma26>
    <#lemma27>
  );
  r:rule <#lemma6>.

<#lemma14> a r:Extraction;
  r:gives {
    (0 0) :and 0 .
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/gcc/gcc.n3>].

<#lemma15> a r:Extraction;
  r:gives {
    0 :inv 1 .
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/gcc/gcc.n3>].

<#lemma16> a r:Extraction;
  r:gives {
    (0 1) :and 0 .
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/gcc/gcc.n3>].

<#lemma17> a r:Extraction;
  r:gives {
    (1 0) :and 0 .
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/gcc/gcc.n3>].

<#lemma18> a r:Extraction;
  r:gives {
    (0 0) :or 0 .
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/gcc/gcc.n3>].

<#lemma19> a r:Extraction;
  r:gives {
    {(?x_0_4 ?x_4_4 ?x_1_4) :netb (?x_8_4 ?x_9_4)} <= {(?x_0_4 ?x_1_4) :and ?x_2_4.
     ?x_1_4 :inv ?x_3_4.
     (?x_4_4 ?x_3_4) :and ?x_5_4.
     ?x_0_4 :inv ?x_6_4.
     (?x_6_4 ?x_1_4) :and ?x_7_4.
     (?x_2_4 ?x_5_4) :or ?x_8_4.
     (?x_5_4 ?x_7_4) :or ?x_9_4}.
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/gcc/gcc.n3>].

<#lemma20> a r:Extraction;
  r:gives {
    (1 1) :and 1 .
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/gcc/gcc.n3>].

<#lemma21> a r:Extraction;
  r:gives {
    (0 1) :or 1 .
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/gcc/gcc.n3>].

<#lemma22> a r:Extraction;
  r:gives {
    {(?x_0_5 ?x_1_5) :neta ?x_6_5} <= {(?x_0_5 ?x_1_5) :and ?x_2_5.
     ?x_0_5 :inv ?x_3_5.
     ?x_1_5 :inv ?x_4_5.
     (?x_3_5 ?x_4_5) :and ?x_5_5.
     (?x_2_5 ?x_5_5) :or ?x_6_5}.
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/gcc/gcc.n3>].

<#lemma23> a r:Extraction;
  r:gives {
    {(?x_0_6 1 ?x_1_6) :dff ?x_0_6} <= true.
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/gcc/gcc.n3>].

<#lemma24> a r:Inference;
  r:gives {
    (0 0 1) :netb (0 1).
  };
  r:evidence (
    <#lemma16>
    <#lemma28>
    <#lemma14>
    <#lemma15>
    <#lemma20>
    <#lemma18>
    <#lemma21>
  );
  r:rule <#lemma19>.

<#lemma25> a r:Inference;
  r:gives {
    (1 1 1) :dff 1 .
  };
  r:evidence (
    [ a r:Fact; r:gives true]
  );
  r:rule <#lemma23>.

<#lemma26> a r:Inference;
  r:gives {
    (1 (0 1 1)) :gcc (0 1 0).
  };
  r:evidence (
    <#lemma29>
    <#lemma30>
    <#lemma9>
    <#lemma25>
    <#lemma31>
  );
  r:rule <#lemma11>.

<#lemma27> a r:Inference;
  r:gives {
    ((1 1 1 1 1 1) (0 1 0)) :testgcc ((1 1 0) (1 1 1) (1 0 1) (1 0 0) (0 0 0) (0 0 1)).
  };
  r:evidence (
    [ a r:Fact; r:gives {(1 1 1 1 1 1) e:firstRest (1 (1 1 1 1 1))}]
    [ a r:Fact; r:gives {((1 1 0) (1 1 1) (1 0 1) (1 0 0) (0 0 0) (0 0 1)) e:firstRest ((1 1 0) ((1 1 1) (1 0 1) (1 0 0) (0 0 0) (0 0 1)))}]
    <#lemma32>
    <#lemma33>
  );
  r:rule <#lemma6>.

<#lemma28> a r:Extraction;
  r:gives {
    1 :inv 0 .
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/gcc/gcc.n3>].

<#lemma29> a r:Inference;
  r:gives {
    (0 1 1) :netb (0 1).
  };
  r:evidence (
    <#lemma16>
    <#lemma28>
    <#lemma17>
    <#lemma15>
    <#lemma20>
    <#lemma18>
    <#lemma21>
  );
  r:rule <#lemma19>.

<#lemma30> a r:Inference;
  r:gives {
    (0 1) :neta 0 .
  };
  r:evidence (
    <#lemma16>
    <#lemma15>
    <#lemma28>
    <#lemma17>
    <#lemma18>
  );
  r:rule <#lemma22>.

<#lemma31> a r:Inference;
  r:gives {
    (0 1 1) :dff 0 .
  };
  r:evidence (
    [ a r:Fact; r:gives true]
  );
  r:rule <#lemma23>.

<#lemma32> a r:Inference;
  r:gives {
    (1 (0 1 0)) :gcc (1 1 0).
  };
  r:evidence (
    <#lemma34>
    <#lemma30>
    <#lemma10>
    <#lemma25>
    <#lemma9>
  );
  r:rule <#lemma11>.

<#lemma33> a r:Inference;
  r:gives {
    ((1 1 1 1 1) (1 1 0)) :testgcc ((1 1 1) (1 0 1) (1 0 0) (0 0 0) (0 0 1)).
  };
  r:evidence (
    [ a r:Fact; r:gives {(1 1 1 1 1) e:firstRest (1 (1 1 1 1))}]
    [ a r:Fact; r:gives {((1 1 1) (1 0 1) (1 0 0) (0 0 0) (0 0 1)) e:firstRest ((1 1 1) ((1 0 1) (1 0 0) (0 0 0) (0 0 1)))}]
    <#lemma35>
    <#lemma36>
  );
  r:rule <#lemma6>.

<#lemma34> a r:Inference;
  r:gives {
    (0 1 0) :netb (1 1).
  };
  r:evidence (
    <#lemma14>
    <#lemma15>
    <#lemma20>
    <#lemma15>
    <#lemma17>
    <#lemma21>
    <#lemma37>
  );
  r:rule <#lemma19>.

<#lemma35> a r:Inference;
  r:gives {
    (1 (1 1 0)) :gcc (1 1 1).
  };
  r:evidence (
    <#lemma38>
    <#lemma39>
    <#lemma25>
    <#lemma25>
    <#lemma10>
  );
  r:rule <#lemma11>.

<#lemma36> a r:Inference;
  r:gives {
    ((1 1 1 1) (1 1 1)) :testgcc ((1 0 1) (1 0 0) (0 0 0) (0 0 1)).
  };
  r:evidence (
    [ a r:Fact; r:gives {(1 1 1 1) e:firstRest (1 (1 1 1))}]
    [ a r:Fact; r:gives {((1 0 1) (1 0 0) (0 0 0) (0 0 1)) e:firstRest ((1 0 1) ((1 0 0) (0 0 0) (0 0 1)))}]
    <#lemma40>
    <#lemma41>
  );
  r:rule <#lemma6>.

<#lemma37> a r:Extraction;
  r:gives {
    (1 0) :or 1 .
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/gcc/gcc.n3>].

<#lemma38> a r:Inference;
  r:gives {
    (1 1 0) :netb (1 1).
  };
  r:evidence (
    <#lemma17>
    <#lemma15>
    <#lemma20>
    <#lemma28>
    <#lemma14>
    <#lemma21>
    <#lemma37>
  );
  r:rule <#lemma19>.

<#lemma39> a r:Inference;
  r:gives {
    (1 1) :neta 1 .
  };
  r:evidence (
    <#lemma20>
    <#lemma28>
    <#lemma28>
    <#lemma14>
    <#lemma37>
  );
  r:rule <#lemma22>.

<#lemma40> a r:Inference;
  r:gives {
    (1 (1 1 1)) :gcc (1 0 1).
  };
  r:evidence (
    <#lemma42>
    <#lemma39>
    <#lemma25>
    <#lemma31>
    <#lemma25>
  );
  r:rule <#lemma11>.

<#lemma41> a r:Inference;
  r:gives {
    ((1 1 1) (1 0 1)) :testgcc ((1 0 0) (0 0 0) (0 0 1)).
  };
  r:evidence (
    [ a r:Fact; r:gives {(1 1 1) e:firstRest (1 (1 1))}]
    [ a r:Fact; r:gives {((1 0 0) (0 0 0) (0 0 1)) e:firstRest ((1 0 0) ((0 0 0) (0 0 1)))}]
    <#lemma43>
    <#lemma44>
  );
  r:rule <#lemma6>.

<#lemma42> a r:Inference;
  r:gives {
    (1 1 1) :netb (1 0).
  };
  r:evidence (
    <#lemma20>
    <#lemma28>
    <#lemma17>
    <#lemma28>
    <#lemma16>
    <#lemma37>
    <#lemma18>
  );
  r:rule <#lemma19>.

<#lemma43> a r:Inference;
  r:gives {
    (1 (1 0 1)) :gcc (1 0 0).
  };
  r:evidence (
    <#lemma45>
    <#lemma46>
    <#lemma25>
    <#lemma9>
    <#lemma31>
  );
  r:rule <#lemma11>.

<#lemma44> a r:Inference;
  r:gives {
    ((1 1) (1 0 0)) :testgcc ((0 0 0) (0 0 1)).
  };
  r:evidence (
    [ a r:Fact; r:gives {(1 1) e:firstRest (1 (1))}]
    [ a r:Fact; r:gives {((0 0 0) (0 0 1)) e:firstRest ((0 0 0) ((0 0 1)))}]
    <#lemma47>
    <#lemma48>
  );
  r:rule <#lemma6>.

<#lemma45> a r:Inference;
  r:gives {
    (1 0 1) :netb (1 0).
  };
  r:evidence (
    <#lemma20>
    <#lemma28>
    <#lemma14>
    <#lemma28>
    <#lemma16>
    <#lemma37>
    <#lemma18>
  );
  r:rule <#lemma19>.

<#lemma46> a r:Inference;
  r:gives {
    (1 0) :neta 0 .
  };
  r:evidence (
    <#lemma17>
    <#lemma28>
    <#lemma15>
    <#lemma16>
    <#lemma18>
  );
  r:rule <#lemma22>.

<#lemma47> a r:Inference;
  r:gives {
    (1 (1 0 0)) :gcc (0 0 0).
  };
  r:evidence (
    <#lemma49>
    <#lemma46>
    <#lemma31>
    <#lemma9>
    <#lemma9>
  );
  r:rule <#lemma11>.

<#lemma48> a r:Inference;
  r:gives {
    ((1) (0 0 0)) :testgcc ((0 0 1)).
  };
  r:evidence (
    [ a r:Fact; r:gives {(1) e:firstRest (1 ())}]
    [ a r:Fact; r:gives {((0 0 1)) e:firstRest ((0 0 1) ())}]
    <#lemma4>
    <#lemma50>
  );
  r:rule <#lemma6>.

<#lemma49> a r:Inference;
  r:gives {
    (1 0 0) :netb (0 0).
  };
  r:evidence (
    <#lemma17>
    <#lemma15>
    <#lemma16>
    <#lemma28>
    <#lemma14>
    <#lemma18>
    <#lemma18>
  );
  r:rule <#lemma19>.

<#lemma50> a r:Inference;
  r:gives {
    (() (0 0 1)) :testgcc ().
  };
  r:evidence (
    [ a r:Fact; r:gives true]
  );
  r:rule <#lemma51>.

<#lemma51> a r:Extraction;
  r:gives {
    {(() ?x_0_7) :testgcc ()} <= true.
  };
  r:because [ a r:Parsing; r:source <http://josd.github.io/eye/reasoning/gcc/gcc.n3>].

