{"declarations":[{"category":"flagships","display_name":"ComplexCSP.ComplexityClassification.degree_conditions","family":"complex-csp","import":"ComplexCSP.Complexity.Classification","kind":"theorem","module":"ComplexCSP.Complexity.Classification","name":"ComplexCSP.ComplexityClassification.degree_conditions","original_declaration":"ComplexCSP.ComplexityClassification.degree_conditions","readable_type":"∀ {D K : Type} [inst : Fintype D] [inst_1 : Field K] [DecidableEq K] [inst_3 : Algebra Rat K] {s dimension : Nat}\n  (L : ComplexCSP.Language D K (Fin s)) (basis : Module.Basis (Fin dimension) Rat K) (σ : RingHom K Complex)\n  [Nonempty D] (δ : Nat),\n  instLTNat.lt 0 δ →\n    And\n      (ComplexCSP.DegreeCaiChenConditions (L.mapValues σ) δ →\n        (ComplexCSP.ComplexityGadgetSubstitution.degreePartitionProblem L basis δ).InFP)\n      (Not (ComplexCSP.DegreeCaiChenConditions (L.mapValues σ) δ) →\n        PlanarHom.Complexity.PromisedSharpPHard\n          (ComplexCSP.ComplexityGadgetSubstitution.degreePartitionProblem L basis δ))","role":"theorem","source_line":40,"source_path":"projects/complex-csp-classification/ComplexCSP/Complexity/Classification.lean","source_sha256":"a64120a0fa14fc3c75b5528ca02718bb5aa15fd0e2d46f31d9b98ee127db4bd0","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/complex-csp-classification/ComplexCSP/Complexity/Classification.lean#L40","type":"∀ {D K : Type} [inst : Fintype.{0} D] [inst_1 : Field.{0} K] [DecidableEq.{1} K]\n  [inst_3 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1)))]\n  {s dimension : Nat} (L : ComplexCSP.Language D K (Fin s))\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1))) inst_3))\n  (σ :\n    @RingHom.{0, 0} K Complex\n      (@Semiring.toNonAssocSemiring.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1))))\n      (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring))\n  [Nonempty.{1} D] (δ : Nat)\n  (hδ : @LT.lt.{0} Nat instLTNat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) δ),\n  And\n    (@ComplexCSP.DegreeCaiChenConditions D (Fin s) inst\n        (@ComplexCSP.Language.mapValues D K Complex (Fin s)\n          (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1)) Complex.instCommSemiring L σ)\n        δ →\n      PlanarHom.Complexity.PromiseProblem.InFP\n        (@ComplexCSP.ComplexityGadgetSubstitution.degreePartitionProblem D K inst inst_1 inst_3 s dimension L basis δ))\n    (Not\n        (@ComplexCSP.DegreeCaiChenConditions D (Fin s) inst\n          (@ComplexCSP.Language.mapValues D K Complex (Fin s)\n            (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1)) Complex.instCommSemiring L σ)\n          δ) →\n      PlanarHom.Complexity.PromisedSharpPHard\n        (@ComplexCSP.ComplexityGadgetSubstitution.degreePartitionProblem D K inst inst_1 inst_3 s dimension L basis δ))"},{"category":"flagships","display_name":"ComplexCSP.ComplexityClassification.degree_jointBO","family":"complex-csp","import":"ComplexCSP.Complexity.Classification","kind":"theorem","module":"ComplexCSP.Complexity.Classification","name":"ComplexCSP.ComplexityClassification.degree_jointBO","original_declaration":"ComplexCSP.ComplexityClassification.degree_jointBO","readable_type":"∀ {D K : Type} [inst : Fintype D] [inst_1 : Field K] [DecidableEq K] [inst_3 : Algebra Rat K] {s dimension : Nat}\n  (L : ComplexCSP.Language D K (Fin s)) (basis : Module.Basis (Fin dimension) Rat K) (σ : RingHom K Complex) (δ : Nat),\n  instLTNat.lt 0 δ →\n    And\n      (ComplexCSP.DegreeJointBO (L.mapValues σ) δ →\n        (ComplexCSP.ComplexityGadgetSubstitution.degreePartitionProblem L basis δ).InFP)\n      (Not (ComplexCSP.DegreeJointBO (L.mapValues σ) δ) →\n        PlanarHom.Complexity.PromisedSharpPHard\n          (ComplexCSP.ComplexityGadgetSubstitution.degreePartitionProblem L basis δ))","role":"theorem","source_line":26,"source_path":"projects/complex-csp-classification/ComplexCSP/Complexity/Classification.lean","source_sha256":"a64120a0fa14fc3c75b5528ca02718bb5aa15fd0e2d46f31d9b98ee127db4bd0","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/complex-csp-classification/ComplexCSP/Complexity/Classification.lean#L26","type":"∀ {D K : Type} [inst : Fintype.{0} D] [inst_1 : Field.{0} K] [DecidableEq.{1} K]\n  [inst_3 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1)))]\n  {s dimension : Nat} (L : ComplexCSP.Language D K (Fin s))\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1))) inst_3))\n  (σ :\n    @RingHom.{0, 0} K Complex\n      (@Semiring.toNonAssocSemiring.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1))))\n      (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring))\n  (δ : Nat) (hδ : @LT.lt.{0} Nat instLTNat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) δ),\n  And\n    (@ComplexCSP.DegreeJointBO D (Fin s) inst\n        (@ComplexCSP.Language.mapValues D K Complex (Fin s)\n          (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1)) Complex.instCommSemiring L σ)\n        δ →\n      PlanarHom.Complexity.PromiseProblem.InFP\n        (@ComplexCSP.ComplexityGadgetSubstitution.degreePartitionProblem D K inst inst_1 inst_3 s dimension L basis δ))\n    (Not\n        (@ComplexCSP.DegreeJointBO D (Fin s) inst\n          (@ComplexCSP.Language.mapValues D K Complex (Fin s)\n            (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1)) Complex.instCommSemiring L σ)\n          δ) →\n      PlanarHom.Complexity.PromisedSharpPHard\n        (@ComplexCSP.ComplexityGadgetSubstitution.degreePartitionProblem D K inst inst_1 inst_3 s dimension L basis δ))"},{"category":"flagships","display_name":"ComplexCSP.ComplexityClassification.ordinary_conditions","family":"complex-csp","import":"ComplexCSP.Complexity.Classification","kind":"theorem","module":"ComplexCSP.Complexity.Classification","name":"ComplexCSP.ComplexityClassification.ordinary_conditions","original_declaration":"ComplexCSP.ComplexityClassification.ordinary_conditions","readable_type":"∀ {D K : Type} [inst : Fintype D] [inst_1 : Field K] [DecidableEq K] [inst_3 : Algebra Rat K] {s dimension : Nat}\n  (L : ComplexCSP.Language D K (Fin s)) (basis : Module.Basis (Fin dimension) Rat K) (σ : RingHom K Complex)\n  [Nonempty D],\n  And\n    (ComplexCSP.CaiChenConditions (L.mapValues σ) →\n      (ComplexCSP.ComplexityCSPCountReduction.partitionProblem L basis).InFP)\n    (Not (ComplexCSP.CaiChenConditions (L.mapValues σ)) →\n      PlanarHom.Complexity.PromisedSharpPHard (ComplexCSP.ComplexityCSPCountReduction.partitionProblem L basis))","role":"theorem","source_line":34,"source_path":"projects/complex-csp-classification/ComplexCSP/Complexity/Classification.lean","source_sha256":"a64120a0fa14fc3c75b5528ca02718bb5aa15fd0e2d46f31d9b98ee127db4bd0","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/complex-csp-classification/ComplexCSP/Complexity/Classification.lean#L34","type":"∀ {D K : Type} [inst : Fintype.{0} D] [inst_1 : Field.{0} K] [DecidableEq.{1} K]\n  [inst_3 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1)))]\n  {s dimension : Nat} (L : ComplexCSP.Language D K (Fin s))\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1))) inst_3))\n  (σ :\n    @RingHom.{0, 0} K Complex\n      (@Semiring.toNonAssocSemiring.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1))))\n      (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring))\n  [Nonempty.{1} D],\n  And\n    (@ComplexCSP.CaiChenConditions D (Fin s) inst\n        (@ComplexCSP.Language.mapValues D K Complex (Fin s)\n          (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1)) Complex.instCommSemiring L σ) →\n      PlanarHom.Complexity.PromiseProblem.InFP\n        (@ComplexCSP.ComplexityCSPCountReduction.partitionProblem D K inst inst_1 inst_3 s dimension L basis))\n    (Not\n        (@ComplexCSP.CaiChenConditions D (Fin s) inst\n          (@ComplexCSP.Language.mapValues D K Complex (Fin s)\n            (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1)) Complex.instCommSemiring L σ)) →\n      PlanarHom.Complexity.PromisedSharpPHard\n        (@ComplexCSP.ComplexityCSPCountReduction.partitionProblem D K inst inst_1 inst_3 s dimension L basis))"},{"category":"flagships","display_name":"ComplexCSP.ComplexityClassification.ordinary_jointBO","family":"complex-csp","import":"ComplexCSP.Complexity.Classification","kind":"theorem","module":"ComplexCSP.Complexity.Classification","name":"ComplexCSP.ComplexityClassification.ordinary_jointBO","original_declaration":"ComplexCSP.ComplexityClassification.ordinary_jointBO","readable_type":"∀ {D K : Type} [inst : Fintype D] [inst_1 : Field K] [DecidableEq K] [inst_3 : Algebra Rat K] {s dimension : Nat}\n  (L : ComplexCSP.Language D K (Fin s)) (basis : Module.Basis (Fin dimension) Rat K) (σ : RingHom K Complex),\n  And (ComplexCSP.JointBO (L.mapValues σ) → (ComplexCSP.ComplexityCSPCountReduction.partitionProblem L basis).InFP)\n    (Not (ComplexCSP.JointBO (L.mapValues σ)) →\n      PlanarHom.Complexity.PromisedSharpPHard (ComplexCSP.ComplexityCSPCountReduction.partitionProblem L basis))","role":"theorem","source_line":20,"source_path":"projects/complex-csp-classification/ComplexCSP/Complexity/Classification.lean","source_sha256":"a64120a0fa14fc3c75b5528ca02718bb5aa15fd0e2d46f31d9b98ee127db4bd0","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/complex-csp-classification/ComplexCSP/Complexity/Classification.lean#L20","type":"∀ {D K : Type} [inst : Fintype.{0} D] [inst_1 : Field.{0} K] [DecidableEq.{1} K]\n  [inst_3 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1)))]\n  {s dimension : Nat} (L : ComplexCSP.Language D K (Fin s))\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1))) inst_3))\n  (σ :\n    @RingHom.{0, 0} K Complex\n      (@Semiring.toNonAssocSemiring.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1))))\n      (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)),\n  And\n    (@ComplexCSP.JointBO D inst (Fin s)\n        (@ComplexCSP.Language.mapValues D K Complex (Fin s)\n          (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1)) Complex.instCommSemiring L σ) →\n      PlanarHom.Complexity.PromiseProblem.InFP\n        (@ComplexCSP.ComplexityCSPCountReduction.partitionProblem D K inst inst_1 inst_3 s dimension L basis))\n    (Not\n        (@ComplexCSP.JointBO D inst (Fin s)\n          (@ComplexCSP.Language.mapValues D K Complex (Fin s)\n            (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst_1)) Complex.instCommSemiring L σ)) →\n      PlanarHom.Complexity.PromisedSharpPHard\n        (@ComplexCSP.ComplexityCSPCountReduction.partitionProblem D K inst inst_1 inst_3 s dimension L basis))"},{"category":"flagships","display_name":"ComplexCSP.PinnedIsomorphism.all_instance_completeness","family":"complex-csp","import":"ComplexCSP.Instances.IsomorphismCompleteness","kind":"theorem","module":"ComplexCSP.Instances.IsomorphismCompleteness","name":"ComplexCSP.PinnedIsomorphism.all_instance_completeness","original_declaration":"ComplexCSP.PinnedIsomorphism.all_instance_completeness","readable_type":"∀ {A B K ι V : Type} [inst : Field K] [CharZero K] [inst_2 : Fintype A] [inst_3 : Fintype B]\n  (L : ComplexCSP.Language A K ι) (g : (i : ι) → (Fin (L.arity i) → B) → K) (a : V → A) (b : V → B),\n  ComplexCSP.PinnedIsomorphism.AllPinnedEqual L g a b →\n    Exists fun e => And (L.IsTargetIso g e) (∀ (v : V), (L.retarget g).Twins (EquivLike.toFunLike.coe e (a v)) (b v))","role":"theorem","source_line":65,"source_path":"projects/complex-csp/ComplexCSP/Instances/IsomorphismCompleteness.lean","source_sha256":"4273360210768b5c2ac73b29f71d7c4530730530d335f13b75338a50e932ec15","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/complex-csp/ComplexCSP/Instances/IsomorphismCompleteness.lean#L65","type":"∀ {A B K ι V : Type} [inst : Field.{0} K]\n  [@CharZero.{0} K\n      (@AddGroupWithOne.toAddMonoidWithOne.{0} K\n        (@Ring.toAddGroupWithOne.{0} K (@DivisionRing.toRing.{0} K (@Field.toDivisionRing.{0} K inst))))]\n  [inst_2 : Fintype.{0} A] [inst_3 : Fintype.{0} B] (L : ComplexCSP.Language A K ι)\n  (g : (i : ι) → (Fin (@ComplexCSP.Language.arity A K ι L i) → B) → K) (a : V → A) (b : V → B)\n  (h : @ComplexCSP.PinnedIsomorphism.AllPinnedEqual A B K ι V inst inst_2 inst_3 L g a b),\n  @Exists.{1} (Equiv.{1, 1} A B) fun (e : Equiv.{1, 1} A B) =>\n    And (@ComplexCSP.Language.IsTargetIso A B K ι L g e)\n      (∀ (v : V),\n        @ComplexCSP.Language.Twins B K ι (@ComplexCSP.Language.retarget A B K ι L g)\n          (@DFunLike.coe.{1, 1, 1} (Equiv.{1, 1} A B) A (fun (x : A) => B)\n            (@EquivLike.toFunLike.{1, 1, 1} (Equiv.{1, 1} A B) A B (@Equiv.instEquivLike.{1, 1} A B)) e (a v))\n          (b v))"},{"category":"flagships","display_name":"ComplexCSP.PinnedIsomorphism.all_instance_pinned_iso_iff","family":"complex-csp","import":"ComplexCSP.Instances.IsomorphismCompleteness","kind":"theorem","module":"ComplexCSP.Instances.IsomorphismCompleteness","name":"ComplexCSP.PinnedIsomorphism.all_instance_pinned_iso_iff","original_declaration":"ComplexCSP.PinnedIsomorphism.all_instance_pinned_iso_iff","readable_type":"∀ {A B K ι V : Type} [inst : Field K] [CharZero K] [inst_2 : Fintype A] [inst_3 : Fintype B]\n  (L : ComplexCSP.Language A K ι) (g : (i : ι) → (Fin (L.arity i) → B) → K) (a : V → A) (b : V → B),\n  Iff (ComplexCSP.PinnedIsomorphism.AllPinnedEqual L g a b)\n    (Exists fun e => And (L.IsTargetIso g e) (∀ (v : V), (L.retarget g).Twins (EquivLike.toFunLike.coe e (a v)) (b v)))","role":"theorem","source_line":84,"source_path":"projects/complex-csp/ComplexCSP/Instances/IsomorphismCompleteness.lean","source_sha256":"4273360210768b5c2ac73b29f71d7c4530730530d335f13b75338a50e932ec15","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/complex-csp/ComplexCSP/Instances/IsomorphismCompleteness.lean#L84","type":"∀ {A B K ι V : Type} [inst : Field.{0} K]\n  [@CharZero.{0} K\n      (@AddGroupWithOne.toAddMonoidWithOne.{0} K\n        (@Ring.toAddGroupWithOne.{0} K (@DivisionRing.toRing.{0} K (@Field.toDivisionRing.{0} K inst))))]\n  [inst_2 : Fintype.{0} A] [inst_3 : Fintype.{0} B] (L : ComplexCSP.Language A K ι)\n  (g : (i : ι) → (Fin (@ComplexCSP.Language.arity A K ι L i) → B) → K) (a : V → A) (b : V → B),\n  Iff (@ComplexCSP.PinnedIsomorphism.AllPinnedEqual A B K ι V inst inst_2 inst_3 L g a b)\n    (@Exists.{1} (Equiv.{1, 1} A B) fun (e : Equiv.{1, 1} A B) =>\n      And (@ComplexCSP.Language.IsTargetIso A B K ι L g e)\n        (∀ (v : V),\n          @ComplexCSP.Language.Twins B K ι (@ComplexCSP.Language.retarget A B K ι L g)\n            (@DFunLike.coe.{1, 1, 1} (Equiv.{1, 1} A B) A (fun (x : A) => B)\n              (@EquivLike.toFunLike.{1, 1, 1} (Equiv.{1, 1} A B) A B (@Equiv.instEquivLike.{1, 1} A B)) e (a v))\n            (b v)))"},{"category":"flagships","display_name":"ComplexCSP.PinnedIsomorphism.pinnedIsoCheck_correct_all_instances","family":"complex-csp","import":"ComplexCSP.Instances.IsomorphismCompleteness","kind":"theorem","module":"ComplexCSP.Instances.IsomorphismCompleteness","name":"ComplexCSP.PinnedIsomorphism.pinnedIsoCheck_correct_all_instances","original_declaration":"ComplexCSP.PinnedIsomorphism.pinnedIsoCheck_correct_all_instances","readable_type":"∀ {A B K ι V : Type} [inst : Field K] [CharZero K] [inst_2 : Fintype A] [inst_3 : Fintype B]\n  (L : ComplexCSP.Language A K ι) (g : (i : ι) → (Fin (L.arity i) → B) → K) [inst_4 : DecidableEq A]\n  [inst_5 : DecidableEq B] [inst_6 : DecidableEq K] [inst_7 : Fintype ι] [inst_8 : Fintype V] (a : V → A) (b : V → B),\n  Iff (Eq (L.pinnedIsoCheck g a b) Bool.true) (ComplexCSP.PinnedIsomorphism.AllPinnedEqual L g a b)","role":"theorem","source_line":95,"source_path":"projects/complex-csp/ComplexCSP/Instances/IsomorphismCompleteness.lean","source_sha256":"4273360210768b5c2ac73b29f71d7c4530730530d335f13b75338a50e932ec15","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/complex-csp/ComplexCSP/Instances/IsomorphismCompleteness.lean#L95","type":"∀ {A B K ι V : Type} [inst : Field.{0} K]\n  [@CharZero.{0} K\n      (@AddGroupWithOne.toAddMonoidWithOne.{0} K\n        (@Ring.toAddGroupWithOne.{0} K (@DivisionRing.toRing.{0} K (@Field.toDivisionRing.{0} K inst))))]\n  [inst_2 : Fintype.{0} A] [inst_3 : Fintype.{0} B] (L : ComplexCSP.Language A K ι)\n  (g : (i : ι) → (Fin (@ComplexCSP.Language.arity A K ι L i) → B) → K) [inst_4 : DecidableEq.{1} A]\n  [inst_5 : DecidableEq.{1} B] [inst_6 : DecidableEq.{1} K] [inst_7 : Fintype.{0} ι] [inst_8 : Fintype.{0} V]\n  (a : V → A) (b : V → B),\n  Iff\n    (@Eq.{1} Bool\n      (@ComplexCSP.Language.pinnedIsoCheck A B K ι V inst_2 inst_3 inst_4 inst_5 inst_7 inst_8 inst_6 L g a b)\n      Bool.true)\n    (@ComplexCSP.PinnedIsomorphism.AllPinnedEqual A B K ι V inst inst_2 inst_3 L g a b)"},{"category":"flagships","display_name":"ComplexCSP.Recognition.PinnedMonomial.characters_eq_iff_all_tensor_instances","family":"complex-csp","import":"ComplexCSP.Recognition.CharacterComparison","kind":"theorem","module":"ComplexCSP.Recognition.CharacterComparison","name":"ComplexCSP.Recognition.PinnedMonomial.characters_eq_iff_all_tensor_instances","original_declaration":"ComplexCSP.Recognition.PinnedMonomial.characters_eq_iff_all_tensor_instances","readable_type":"∀ {D K ι V : Type} [inst : Field K] [inst_1 : StarRing K] [inst_2 : Fintype D]\n  (M N : ComplexCSP.Recognition.PinnedMonomial V D) (L : ComplexCSP.Language D K ι),\n  Iff (Eq (M.character L) (N.character L))\n    (ComplexCSP.PinnedIsomorphism.AllPinnedEqual (M.target L) (N.target L).value M.pin N.pin)","role":"theorem","source_line":102,"source_path":"projects/complex-csp/ComplexCSP/Recognition/CharacterComparison.lean","source_sha256":"01a1d7ac732a2d7a3438739295867d7bc634bfa958f3e42f4c12cfd1a2a0af84","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/complex-csp/ComplexCSP/Recognition/CharacterComparison.lean#L102","type":"∀ {D K ι V : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @StarRing.{0} K\n      (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} K\n        (@NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing.{0} K\n          (@NonUnitalCommRing.toNonUnitalNonAssocCommRing.{0} K\n            (@CommRing.toNonUnitalCommRing.{0} K (@Field.toCommRing.{0} K inst)))))]\n  [inst_2 : Fintype.{0} D] (M N : ComplexCSP.Recognition.PinnedMonomial V D) (L : ComplexCSP.Language D K ι),\n  Iff\n    (@Eq.{1}\n      (@MonoidHom.{0, 0}\n        (@Subtype.{1} ((V → D) → K) fun (x : (V → D) → K) =>\n          @Membership.mem.{0, 0} ((V → D) → K)\n            (@Submonoid.{0} ((V → D) → K)\n              (@Pi.mulOneClass.{0, 0} (V → D) (fun (a : V → D) => K) fun (i : V → D) =>\n                @MulZeroOneClass.toMulOneClass.{0} K\n                  (@instMulZeroOneClassOfSemiring.{0} K\n                    (@CommSemiring.toSemiring.{0} K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))))\n            (@SetLike.instMembership.{0, 0}\n              (@Submonoid.{0} ((V → D) → K)\n                (@Pi.mulOneClass.{0, 0} (V → D) (fun (a : V → D) => K) fun (i : V → D) =>\n                  @MulZeroOneClass.toMulOneClass.{0} K\n                    (@instMulZeroOneClassOfSemiring.{0} K\n                      (@CommSemiring.toSemiring.{0} K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))))\n              ((V → D) → K)\n              (@Submonoid.instSetLike.{0} ((V → D) → K)\n                (@Pi.mulOneClass.{0, 0} (V → D) (fun (a : V → D) => K) fun (i : V → D) =>\n                  @MulZeroOneClass.toMulOneClass.{0} K\n                    (@instMulZeroOneClassOfSemiring.{0} K\n                      (@CommSemiring.toSemiring.{0} K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))))))\n            (@ComplexCSP.GeneratedTable D K ι (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) inst_2 L\n              V)\n            x)\n        K\n        (@MulOneClass.toMulOne.{0}\n          (@Subtype.{1} ((V → D) → K) fun (x : (V → D) → K) =>\n            @Membership.mem.{0, 0} ((V → D) → K)\n              (@Submonoid.{0} ((V → D) → K)\n                (@Pi.mulOneClass.{0, 0} (V → D) (fun (a : V → D) => K) fun (i : V → D) =>\n                  @MulZeroOneClass.toMulOneClass.{0} K\n                    (@instMulZeroOneClassOfSemiring.{0} K\n                      (@CommSemiring.toSemiring.{0} K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))))\n              (@SetLike.instMembership.{0, 0}\n                (@Submonoid.{0} ((V → D) → K)\n                  (@Pi.mulOneClass.{0, 0} (V → D) (fun (a : V → D) => K) fun (i : V → D) =>\n                    @MulZeroOneClass.toMulOneClass.{0} K\n                      (@instMulZeroOneClassOfSemiring.{0} K\n                        (@CommSemiring.toSemiring.{0} K\n                          (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))))\n                ((V → D) → K)\n                (@Submonoid.instSetLike.{0} ((V → D) → K)\n                  (@Pi.mulOneClass.{0, 0} (V → D) (fun (a : V → D) => K) fun (i : V → D) =>\n                    @MulZeroOneClass.toMulOneClass.{0} K\n                      (@instMulZeroOneClassOfSemiring.{0} K\n                        (@CommSemiring.toSemiring.{0} K\n                          (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))))))\n              (@ComplexCSP.GeneratedTable D K ι (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) inst_2\n                L V)\n              x)\n          (@Submonoid.toMulOneClass.{0} ((V → D) → K)\n            (@Pi.mulOneClass.{0, 0} (V → D) (fun (a : V → D) => K) fun (i : V → D) =>\n              @MulZeroOneClass.toMulOneClass.{0} K\n                (@instMulZeroOneClassOfSemiring.{0} K\n                  (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))))\n            (@ComplexCSP.GeneratedTable D K ι (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) inst_2 L\n              V)))\n        (@MulOneClass.toMulOne.{0} K\n          (@MulZeroOneClass.toMulOneClass.{0} K\n            (@instMulZeroOneClassOfSemiring.{0} K\n              (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))))))\n      (@ComplexCSP.Recognition.PinnedMonomial.character D K ι V\n        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) inst_1 inst_2 M L)\n      (@ComplexCSP.Recognition.PinnedMonomial.character D K ι V\n        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) inst_1 inst_2 N L))\n    (@ComplexCSP.PinnedIsomorphism.AllPinnedEqual (@ComplexCSP.Recognition.PinnedMonomial.Domain D V M)\n      (@ComplexCSP.Recognition.PinnedMonomial.Domain D V N) K ι V inst\n      (@Pi.instFintype.{0, 0} (Fin (@List.length.{0} (ComplexCSP.PinnedCoordinate V D) M))\n        (fun (a : Fin (@List.length.{0} (ComplexCSP.PinnedCoordinate V D) M)) => D)\n        (instDecidableEqFin (@List.length.{0} (ComplexCSP.PinnedCoordinate V D) M))\n        (Fin.fintype (@List.length.{0} (ComplexCSP.PinnedCoordinate V D) M))\n        fun (a : Fin (@List.length.{0} (ComplexCSP.PinnedCoordinate V D) M)) => inst_2)\n      (@Pi.instFintype.{0, 0} (Fin (@List.length.{0} (ComplexCSP.PinnedCoordinate V D) N))\n        (fun (a : Fin (@List.length.{0} (ComplexCSP.PinnedCoordinate V D) N)) => D)\n        (instDecidableEqFin (@List.length.{0} (ComplexCSP.PinnedCoordinate V D) N))\n        (Fin.fintype (@List.length.{0} (ComplexCSP.PinnedCoordinate V D) N))\n        fun (a : Fin (@List.length.{0} (ComplexCSP.PinnedCoordinate V D) N)) => inst_2)\n      (@ComplexCSP.Recognition.PinnedMonomial.target D K ι V\n        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) inst_1 M L)\n      (@ComplexCSP.Language.value (@ComplexCSP.Recognition.PinnedMonomial.Domain D V N) K ι\n        (@ComplexCSP.Recognition.PinnedMonomial.target D K ι V\n          (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) inst_1 N L))\n      (@ComplexCSP.Recognition.PinnedMonomial.pin D V M) (@ComplexCSP.Recognition.PinnedMonomial.pin D V N))"},{"category":"flagships","display_name":"ComplexCSP.Recognition.encodedDegreeGlobalTest_complexity","family":"complex-csp","import":"ComplexCSP.Recognition.UniformComplexityClassification","kind":"theorem","module":"ComplexCSP.Recognition.UniformComplexityClassification","name":"ComplexCSP.Recognition.encodedDegreeGlobalTest_complexity","original_declaration":"ComplexCSP.Recognition.encodedDegreeGlobalTest_complexity","readable_type":"∀ {K : Type} [inst : Field K] [DecidableEq K] [inst_2 : Algebra Rat K] {dimension : Nat}\n  (L : ComplexCSP.Recognition.FiniteAlgebraicLanguage) (hL : L.Valid) (δ : Nat) (hδ : instLTNat.lt 0 δ)\n  (z : (i : Fin L.signatureSize) → (Fin (L.tables.arity i) → Fin L.domainSize) → Complex),\n  (∀ (i : Fin L.signatureSize) (a : Fin (L.tables.arity i) → Fin L.domainSize),\n      (L.tables.value i a).Represents (z i a)) →\n    ∀ (M : ComplexCSP.Language (Fin L.domainSize) K (Fin L.signatureSize)) (basis : Module.Basis (Fin dimension) Rat K)\n      (σ : RingHom K Complex),\n      Eq (M.mapValues σ) (ComplexCSP.Recognition.realizedAlgebraicLanguage L.tables z) →\n        And\n          (Eq (ComplexCSP.Recognition.encodedDegreeGlobalTest L hL δ hδ) Bool.true →\n            (ComplexCSP.ComplexityGadgetSubstitution.degreePartitionProblem M basis δ).InFP)\n          (Eq (ComplexCSP.Recognition.encodedDegreeGlobalTest L hL δ hδ) Bool.false →\n            PlanarHom.Complexity.PromisedSharpPHard\n              (ComplexCSP.ComplexityGadgetSubstitution.degreePartitionProblem M basis δ))","role":"theorem","source_line":39,"source_path":"projects/complex-csp-classification/ComplexCSP/Recognition/UniformComplexityClassification.lean","source_sha256":"54c3b7d519860ce56f8ccd647957ff3b9ff5c25870ec38a002bed432e317fc0a","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/complex-csp-classification/ComplexCSP/Recognition/UniformComplexityClassification.lean#L39","type":"∀ {K : Type} [inst : Field.{0} K] [DecidableEq.{1} K]\n  [inst_2 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat} (L : ComplexCSP.Recognition.FiniteAlgebraicLanguage)\n  (hL : ComplexCSP.Recognition.FiniteAlgebraicLanguage.Valid L) (δ : Nat)\n  (hδ : @LT.lt.{0} Nat instLTNat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) δ)\n  (z :\n    (i : Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L)) →\n      (Fin\n            (@ComplexCSP.Language.arity (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L))\n              ComplexCSP.AlgebraicEncoding.AlgebraicInput\n              (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n              (ComplexCSP.Recognition.FiniteAlgebraicLanguage.tables L) i) →\n          Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)) →\n        Complex)\n  (hz :\n    ∀ (i : Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n      (a :\n        Fin\n            (@ComplexCSP.Language.arity (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L))\n              ComplexCSP.AlgebraicEncoding.AlgebraicInput\n              (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n              (ComplexCSP.Recognition.FiniteAlgebraicLanguage.tables L) i) →\n          Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)),\n      ComplexCSP.AlgebraicEncoding.AlgebraicInput.Represents\n        (@ComplexCSP.Language.value (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L))\n          ComplexCSP.AlgebraicEncoding.AlgebraicInput\n          (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n          (ComplexCSP.Recognition.FiniteAlgebraicLanguage.tables L) i a)\n        (z i a))\n  (M :\n    ComplexCSP.Language (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)) K\n      (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L)))\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_2))\n  (σ :\n    @RingHom.{0, 0} K Complex\n      (@Semiring.toNonAssocSemiring.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring))\n  (hM :\n    @Eq.{1}\n      (ComplexCSP.Language (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)) Complex\n        (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L)))\n      (@ComplexCSP.Language.mapValues (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)) K Complex\n        (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) Complex.instCommSemiring M σ)\n      (@ComplexCSP.Recognition.realizedAlgebraicLanguage\n        (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L))\n        (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n        (ComplexCSP.Recognition.FiniteAlgebraicLanguage.tables L) z)),\n  And\n    (@Eq.{1} Bool (ComplexCSP.Recognition.encodedDegreeGlobalTest L hL δ hδ) Bool.true →\n      PlanarHom.Complexity.PromiseProblem.InFP\n        (@ComplexCSP.ComplexityGadgetSubstitution.degreePartitionProblem\n          (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)) K\n          (Fin.fintype (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)) inst inst_2\n          (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L) dimension M basis δ))\n    (@Eq.{1} Bool (ComplexCSP.Recognition.encodedDegreeGlobalTest L hL δ hδ) Bool.false →\n      PlanarHom.Complexity.PromisedSharpPHard\n        (@ComplexCSP.ComplexityGadgetSubstitution.degreePartitionProblem\n          (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)) K\n          (Fin.fintype (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)) inst inst_2\n          (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L) dimension M basis δ))"},{"category":"flagships","display_name":"ComplexCSP.Recognition.encodedGlobalTest_complexity","family":"complex-csp","import":"ComplexCSP.Recognition.UniformComplexityClassification","kind":"theorem","module":"ComplexCSP.Recognition.UniformComplexityClassification","name":"ComplexCSP.Recognition.encodedGlobalTest_complexity","original_declaration":"ComplexCSP.Recognition.encodedGlobalTest_complexity","readable_type":"∀ {K : Type} [inst : Field K] [DecidableEq K] [inst_2 : Algebra Rat K] {dimension : Nat}\n  (L : ComplexCSP.Recognition.FiniteAlgebraicLanguage) (hL : L.Valid)\n  (z : (i : Fin L.signatureSize) → (Fin (L.tables.arity i) → Fin L.domainSize) → Complex),\n  (∀ (i : Fin L.signatureSize) (a : Fin (L.tables.arity i) → Fin L.domainSize),\n      (L.tables.value i a).Represents (z i a)) →\n    ∀ (M : ComplexCSP.Language (Fin L.domainSize) K (Fin L.signatureSize)) (basis : Module.Basis (Fin dimension) Rat K)\n      (σ : RingHom K Complex),\n      Eq (M.mapValues σ) (ComplexCSP.Recognition.realizedAlgebraicLanguage L.tables z) →\n        And\n          (Eq (ComplexCSP.Recognition.encodedGlobalTest L hL) Bool.true →\n            (ComplexCSP.ComplexityCSPCountReduction.partitionProblem M basis).InFP)\n          (Eq (ComplexCSP.Recognition.encodedGlobalTest L hL) Bool.false →\n            PlanarHom.Complexity.PromisedSharpPHard (ComplexCSP.ComplexityCSPCountReduction.partitionProblem M basis))","role":"theorem","source_line":16,"source_path":"projects/complex-csp-classification/ComplexCSP/Recognition/UniformComplexityClassification.lean","source_sha256":"54c3b7d519860ce56f8ccd647957ff3b9ff5c25870ec38a002bed432e317fc0a","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/complex-csp-classification/ComplexCSP/Recognition/UniformComplexityClassification.lean#L16","type":"∀ {K : Type} [inst : Field.{0} K] [DecidableEq.{1} K]\n  [inst_2 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat} (L : ComplexCSP.Recognition.FiniteAlgebraicLanguage)\n  (hL : ComplexCSP.Recognition.FiniteAlgebraicLanguage.Valid L)\n  (z :\n    (i : Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L)) →\n      (Fin\n            (@ComplexCSP.Language.arity (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L))\n              ComplexCSP.AlgebraicEncoding.AlgebraicInput\n              (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n              (ComplexCSP.Recognition.FiniteAlgebraicLanguage.tables L) i) →\n          Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)) →\n        Complex)\n  (hz :\n    ∀ (i : Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n      (a :\n        Fin\n            (@ComplexCSP.Language.arity (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L))\n              ComplexCSP.AlgebraicEncoding.AlgebraicInput\n              (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n              (ComplexCSP.Recognition.FiniteAlgebraicLanguage.tables L) i) →\n          Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)),\n      ComplexCSP.AlgebraicEncoding.AlgebraicInput.Represents\n        (@ComplexCSP.Language.value (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L))\n          ComplexCSP.AlgebraicEncoding.AlgebraicInput\n          (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n          (ComplexCSP.Recognition.FiniteAlgebraicLanguage.tables L) i a)\n        (z i a))\n  (M :\n    ComplexCSP.Language (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)) K\n      (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L)))\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_2))\n  (σ :\n    @RingHom.{0, 0} K Complex\n      (@Semiring.toNonAssocSemiring.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring))\n  (hM :\n    @Eq.{1}\n      (ComplexCSP.Language (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)) Complex\n        (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L)))\n      (@ComplexCSP.Language.mapValues (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)) K Complex\n        (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) Complex.instCommSemiring M σ)\n      (@ComplexCSP.Recognition.realizedAlgebraicLanguage\n        (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L))\n        (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n        (ComplexCSP.Recognition.FiniteAlgebraicLanguage.tables L) z)),\n  And\n    (@Eq.{1} Bool (ComplexCSP.Recognition.encodedGlobalTest L hL) Bool.true →\n      PlanarHom.Complexity.PromiseProblem.InFP\n        (@ComplexCSP.ComplexityCSPCountReduction.partitionProblem\n          (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)) K\n          (Fin.fintype (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)) inst inst_2\n          (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L) dimension M basis))\n    (@Eq.{1} Bool (ComplexCSP.Recognition.encodedGlobalTest L hL) Bool.false →\n      PlanarHom.Complexity.PromisedSharpPHard\n        (@ComplexCSP.ComplexityCSPCountReduction.partitionProblem\n          (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)) K\n          (Fin.fintype (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)) inst inst_2\n          (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L) dimension M basis))"},{"category":"core","display_name":"Counting.Algorithm.Affine.FixedLanguage.Family","family":"core-affine-machine","import":"Counting.Algorithm.Affine.FixedLanguage","kind":"definition","module":"Counting.Algorithm.Affine.FixedLanguage","name":"Counting.Algorithm.Affine.FixedLanguage.Family","readable_type":"Nat → Nat → (Nat → Nat) → Type","role":"definition","source_line":15,"source_path":"projects/affine-algorithm/Counting/Algorithm/Affine/FixedLanguage.lean","source_sha256":"7d69192100c0947d2239b9c616429576061e57357320f998b0e9ac08adee8613","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/affine-algorithm/Counting/Algorithm/Affine/FixedLanguage.lean#L15","summary":"Family.","type":"(s b : Nat) → (arity : Nat → Nat) → Type"},{"category":"core","display_name":"Counting.Algorithm.Affine.FixedLanguage.inFP","family":"core-affine-machine","import":"Counting.Algorithm.Affine.FixedLanguage","kind":"theorem","module":"Counting.Algorithm.Affine.FixedLanguage","name":"Counting.Algorithm.Affine.FixedLanguage.inFP","readable_type":"∀ {s b : Nat} {arity : Nat → Nat} (D : Counting.Algorithm.Affine.FixedLanguage.Family s b arity),\n  Holant.Complexity.InFP (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n    (Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalPresentation D).encoding\n    (Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalValue D)","role":"theorem","source_line":29,"source_path":"projects/affine-algorithm/Counting/Algorithm/Affine/FixedLanguage.lean","source_sha256":"7d69192100c0947d2239b9c616429576061e57357320f998b0e9ac08adee8613","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/affine-algorithm/Counting/Algorithm/Affine/FixedLanguage.lean#L29","summary":"Infp.","type":"∀ {s b : Nat} {arity : Nat → Nat} (D : Counting.Algorithm.Affine.FixedLanguage.Family s b arity),\n  @Holant.Complexity.InFP\n    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n    (@Subtype.{1}\n      (@Subtype.{1} Complex fun (x : Complex) =>\n        @Membership.mem.{0, 0} Complex\n          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero))\n          (@SetLike.instMembership.{0, 0}\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            Complex\n            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)))\n          Holant.Tractable.AlgebraicComplex x)\n      fun\n        (x :\n          @Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x) =>\n      @Membership.mem.{0, 0}\n        (@Subtype.{1} Complex fun (x : Complex) =>\n          @Membership.mem.{0, 0} Complex\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              Complex\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)))\n            Holant.Tractable.AlgebraicComplex x)\n        (@IntermediateField.{0, 0} Rat\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          Rat.instField\n          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero)\n            Holant.Tractable.AlgebraicComplex)\n          (@DivisionRing.toRatAlgebra.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@Field.toDivisionRing.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex))\n            (@SubsemiringClass.instCharZero.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SubringClass.toSubsemiringClass.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                  (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SubfieldClass.toSubringClass.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))))\n              Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n        (@SetLike.instMembership.{0, 0}\n          (@IntermediateField.{0, 0} Rat\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            Rat.instField\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              (@SubsemiringClass.instCharZero.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SubringClass.toSubsemiringClass.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                    (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubfieldClass.toSubringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))))\n                Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@IntermediateField.instSetLike.{0, 0} Rat\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            Rat.instField\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              (@SubsemiringClass.instCharZero.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SubringClass.toSubsemiringClass.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                    (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubfieldClass.toSubringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))))\n                Holant.Tractable.AlgebraicComplex Complex.instCharZero))))\n        (@Holant.Algebraic.familyField.{0, 0} (Holant.Complexity.ExactSignatureTables.CoefficientIndex s b arity)\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero)\n            Holant.Tractable.AlgebraicComplex)\n          (@DivisionRing.toRatAlgebra.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@Field.toDivisionRing.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex))\n            (@SubsemiringClass.instCharZero.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SubringClass.toSubsemiringClass.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                  (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SubfieldClass.toSubringClass.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))))\n              Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n          (@Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalCoefficient s b arity D))\n        x)\n    Bool Bool Bool.fintype Bool.fintype (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n    (@Holant.Algebraic.FixedField.encoding.{0}\n      (@Subtype.{1}\n        (@Subtype.{1} Complex fun (x : Complex) =>\n          @Membership.mem.{0, 0} Complex\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              Complex\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)))\n            Holant.Tractable.AlgebraicComplex x)\n        fun\n          (x :\n            @Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x) =>\n        @Membership.mem.{0, 0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@IntermediateField.{0, 0} Rat\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            Rat.instField\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              (@SubsemiringClass.instCharZero.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SubringClass.toSubsemiringClass.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                    (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubfieldClass.toSubringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))))\n                Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n          (@SetLike.instMembership.{0, 0}\n            (@IntermediateField.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                (@SubsemiringClass.instCharZero.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubringClass.toSubsemiringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                      (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubfieldClass.toSubringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))))\n                  Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.instSetLike.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                (@SubsemiringClass.instCharZero.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubringClass.toSubsemiringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                      (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubfieldClass.toSubringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))))\n                  Holant.Tractable.AlgebraicComplex Complex.instCharZero))))\n          (@Holant.Algebraic.familyField.{0, 0} (Holant.Complexity.ExactSignatureTables.CoefficientIndex s b arity)\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              (@SubsemiringClass.instCharZero.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SubringClass.toSubsemiringClass.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                    (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubfieldClass.toSubringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))))\n                Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n            (@Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalCoefficient s b arity D))\n          x)\n      (@IntermediateField.toField.{0, 0} Rat\n        (@Subtype.{1} Complex fun (x : Complex) =>\n          @Membership.mem.{0, 0} Complex\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              Complex\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)))\n            Holant.Tractable.AlgebraicComplex x)\n        Rat.instField\n        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n            Complex.instCharZero)\n          Holant.Tractable.AlgebraicComplex)\n        (@DivisionRing.toRatAlgebra.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@Field.toDivisionRing.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex))\n          (@SubsemiringClass.instCharZero.{0, 0} Complex\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@SubringClass.toSubsemiringClass.{0, 0}\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              Complex\n              (@NonAssocCommRing.toNonAssocRing.{0} Complex (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SubfieldClass.toSubringClass.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))))\n            Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n        (@Holant.Algebraic.familyField.{0, 0} (Holant.Complexity.ExactSignatureTables.CoefficientIndex s b arity)\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero)\n            Holant.Tractable.AlgebraicComplex)\n          (@DivisionRing.toRatAlgebra.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@Field.toDivisionRing.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex))\n            (@SubsemiringClass.instCharZero.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SubringClass.toSubsemiringClass.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                  (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SubfieldClass.toSubringClass.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))))\n              Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n          (@Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalCoefficient s b arity D)))\n      (@IntermediateField.algebra'.{0, 0, 0} Rat Rat\n        (@Subtype.{1} Complex fun (x : Complex) =>\n          @Membership.mem.{0, 0} Complex\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              Complex\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)))\n            Holant.Tractable.AlgebraicComplex x)\n        Rat.instField\n        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n            Complex.instCharZero)\n          Holant.Tractable.AlgebraicComplex)\n        (@DivisionRing.toRatAlgebra.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@Field.toDivisionRing.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex))\n          (@SubsemiringClass.instCharZero.{0, 0} Complex\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@SubringClass.toSubsemiringClass.{0, 0}\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              Complex\n              (@NonAssocCommRing.toNonAssocRing.{0} Complex (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SubfieldClass.toSubringClass.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))))\n            Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n        (@Holant.Algebraic.familyField.{0, 0} (Holant.Complexity.ExactSignatureTables.CoefficientIndex s b arity)\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero)\n            Holant.Tractable.AlgebraicComplex)\n          (@DivisionRing.toRatAlgebra.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@Field.toDivisionRing.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex))\n            (@SubsemiringClass.instCharZero.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SubringClass.toSubsemiringClass.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                  (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SubfieldClass.toSubringClass.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))))\n              Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n          (@Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalCoefficient s b arity D))\n        Rat.commSemiring (@instSMulOfMul.{0} Rat Rat.instMul)\n        (@DivisionRing.toRatAlgebra.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@Field.toDivisionRing.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex))\n          (@SubsemiringClass.instCharZero.{0, 0} Complex\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@SubringClass.toSubsemiringClass.{0, 0}\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              Complex\n              (@NonAssocCommRing.toNonAssocRing.{0} Complex (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SubfieldClass.toSubringClass.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))))\n            Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n        (@IsScalarTower.rat.{0, 0} Rat\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@DivisionRing.toRing.{0} Rat Rat.instDivisionRing)\n          (@Ring.toAddCommGroup.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@DivisionRing.toRing.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))))\n          (@Algebra.toModule.{0, 0} Rat\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            Rat.commSemiring\n            (@CommSemiring.toSemiring.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Semifield.toCommSemiring.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toSemifield.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))))\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              (@SubsemiringClass.instCharZero.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SubringClass.toSubsemiringClass.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                    (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubfieldClass.toSubringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))))\n                Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n          (@Semiring.toModule.{0} Rat Rat.semiring)\n          (@Algebra.toModule.{0, 0} Rat\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            Rat.commSemiring\n            (@CommSemiring.toSemiring.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Semifield.toCommSemiring.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toSemifield.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))))\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              (@SubsemiringClass.instCharZero.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SubringClass.toSubsemiringClass.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                    (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubfieldClass.toSubringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))))\n                Holant.Tractable.AlgebraicComplex Complex.instCharZero)))))\n      (@Module.finrank.{0, 0} Rat\n        (@Subtype.{1}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          fun\n            (x :\n              @Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x) =>\n          @Membership.mem.{0, 0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                (@SubsemiringClass.instCharZero.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubringClass.toSubsemiringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                      (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubfieldClass.toSubringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))))\n                  Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  (@SubsemiringClass.instCharZero.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubringClass.toSubsemiringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                        (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubfieldClass.toSubringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))))\n                    Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.instSetLike.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  (@SubsemiringClass.instCharZero.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubringClass.toSubsemiringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                        (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubfieldClass.toSubringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))))\n                    Holant.Tractable.AlgebraicComplex Complex.instCharZero))))\n            (@Holant.Algebraic.familyField.{0, 0} (Holant.Complexity.ExactSignatureTables.CoefficientIndex s b arity)\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                (@SubsemiringClass.instCharZero.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubringClass.toSubsemiringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                      (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubfieldClass.toSubringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))))\n                  Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n              (@Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalCoefficient s b arity D))\n            x)\n        Rat.semiring\n        (@AddSubmonoidClass.toAddCommMonoid.{0, 0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@Semiring.toAddCommMonoid.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@CommSemiring.toSemiring.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Semifield.toCommSemiring.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toSemifield.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex)))))\n          (@IntermediateField.{0, 0} Rat\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            Rat.instField\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              (@SubsemiringClass.instCharZero.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SubringClass.toSubsemiringClass.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                    (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubfieldClass.toSubringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))))\n                Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n          (@IntermediateField.instSetLike.{0, 0} Rat\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            Rat.instField\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              (@SubsemiringClass.instCharZero.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SubringClass.toSubsemiringClass.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                    (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubfieldClass.toSubringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))))\n                Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n          (@SubsemiringClass.toAddSubmonoidClass.{0, 0}\n            (@IntermediateField.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                (@SubsemiringClass.instCharZero.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubringClass.toSubsemiringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                      (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubfieldClass.toSubringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))))\n                  Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@Semiring.toNonAssocSemiring.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@CommSemiring.toSemiring.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Semifield.toCommSemiring.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toSemifield.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex)))))\n            (@IntermediateField.instSetLike.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                (@SubsemiringClass.instCharZero.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubringClass.toSubsemiringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                      (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubfieldClass.toSubringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))))\n                  Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n            (@SubringClass.toSubsemiringClass.{0, 0}\n              (@IntermediateField.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  (@SubsemiringClass.instCharZero.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubringClass.toSubsemiringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                        (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubfieldClass.toSubringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))))\n                    Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@NonAssocCommRing.toNonAssocRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@CommRing.toNonAssocCommRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toCommRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))))\n              (@IntermediateField.instSetLike.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  (@SubsemiringClass.instCharZero.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubringClass.toSubsemiringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                        (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubfieldClass.toSubringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))))\n                    Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n              (@SubfieldClass.toSubringClass.{0, 0}\n                (@IntermediateField.{0, 0} Rat\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  Rat.instField\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex)\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    (@SubsemiringClass.instCharZero.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubringClass.toSubsemiringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                          (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SubfieldClass.toSubringClass.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))))\n                      Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                (@IntermediateField.instSetLike.{0, 0} Rat\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  Rat.instField\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex)\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    (@SubsemiringClass.instCharZero.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubringClass.toSubsemiringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                          (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SubfieldClass.toSubringClass.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))))\n                      Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n                (@IntermediateField.instSubfieldClass.{0, 0} Rat\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  Rat.instField\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex)\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    (@SubsemiringClass.instCharZero.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubringClass.toSubsemiringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                          (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SubfieldClass.toSubringClass.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))))\n                      Holant.Tractable.AlgebraicComplex Complex.instCharZero))))))\n          (@Holant.Algebraic.familyField.{0, 0} (Holant.Complexity.ExactSignatureTables.CoefficientIndex s b arity)\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              (@SubsemiringClass.instCharZero.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SubringClass.toSubsemiringClass.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                    (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubfieldClass.toSubringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))))\n                Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n            (@Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalCoefficient s b arity D)))\n        (@IntermediateField.module'.{0, 0, 0} Rat\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          Rat.instField\n          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero)\n            Holant.Tractable.AlgebraicComplex)\n          (@DivisionRing.toRatAlgebra.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@Field.toDivisionRing.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex))\n            (@SubsemiringClass.instCharZero.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SubringClass.toSubsemiringClass.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                  (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SubfieldClass.toSubringClass.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))))\n              Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n          (@Holant.Algebraic.familyField.{0, 0} (Holant.Complexity.ExactSignatureTables.CoefficientIndex s b arity)\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              (@SubsemiringClass.instCharZero.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SubringClass.toSubsemiringClass.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                    (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubfieldClass.toSubringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))))\n                Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n            (@Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalCoefficient s b arity D))\n          Rat Rat.semiring (@instSMulOfMul.{0} Rat Rat.instMul)\n          (@Algebra.toModule.{0, 0} Rat\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            Rat.commSemiring\n            (@CommSemiring.toSemiring.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Semifield.toCommSemiring.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toSemifield.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))))\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              (@SubsemiringClass.instCharZero.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SubringClass.toSubsemiringClass.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                    (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubfieldClass.toSubringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))))\n                Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n          (@IsScalarTower.rat.{0, 0} Rat\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@DivisionRing.toRing.{0} Rat Rat.instDivisionRing)\n            (@Ring.toAddCommGroup.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@DivisionRing.toRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))))\n            (@Algebra.toModule.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.commSemiring\n              (@CommSemiring.toSemiring.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Semifield.toCommSemiring.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toSemifield.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))))\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                (@SubsemiringClass.instCharZero.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubringClass.toSubsemiringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                      (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubfieldClass.toSubringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))))\n                  Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n            (@Semiring.toModule.{0} Rat Rat.semiring)\n            (@Algebra.toModule.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.commSemiring\n              (@CommSemiring.toSemiring.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Semifield.toCommSemiring.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toSemifield.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))))\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                (@SubsemiringClass.instCharZero.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubringClass.toSubsemiringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                      (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubfieldClass.toSubringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))))\n                  Holant.Tractable.AlgebraicComplex Complex.instCharZero))))))\n      (@Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalPresentation s b arity D))\n    (@Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalValue s b arity D)"},{"category":"core","display_name":"Counting.Algorithm.Affine.FixedLanguage.polyTime","family":"core-affine-machine","import":"Counting.Algorithm.Affine.FixedLanguage","kind":"definition","module":"Counting.Algorithm.Affine.FixedLanguage","name":"Counting.Algorithm.Affine.FixedLanguage.polyTime","readable_type":"{s b : Nat} →\n  {arity : Nat → Nat} →\n    (D : Counting.Algorithm.Affine.FixedLanguage.Family s b arity) →\n      Holant.Complexity.PolyTime (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n        (Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalPresentation D).encoding\n        (Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalValue D)","role":"definition","source_line":34,"source_path":"projects/affine-algorithm/Counting/Algorithm/Affine/FixedLanguage.lean","source_sha256":"7d69192100c0947d2239b9c616429576061e57357320f998b0e9ac08adee8613","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/affine-algorithm/Counting/Algorithm/Affine/FixedLanguage.lean#L34","summary":"Preserve the finite alphabet certificates, with no extra premise.","type":"{s b : Nat} →\n  {arity : Nat → Nat} →\n    (D : Counting.Algorithm.Affine.FixedLanguage.Family s b arity) →\n      @Holant.Complexity.PolyTime\n        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n          Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n        (@Subtype.{1}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          fun\n            (x :\n              @Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x) =>\n          @Membership.mem.{0, 0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                (@SubsemiringClass.instCharZero.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubringClass.toSubsemiringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                      (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubfieldClass.toSubringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))))\n                  Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  (@SubsemiringClass.instCharZero.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubringClass.toSubsemiringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                        (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubfieldClass.toSubringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))))\n                    Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.instSetLike.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  (@SubsemiringClass.instCharZero.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubringClass.toSubsemiringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                        (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubfieldClass.toSubringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))))\n                    Holant.Tractable.AlgebraicComplex Complex.instCharZero))))\n            (@Holant.Algebraic.familyField.{0, 0} (Holant.Complexity.ExactSignatureTables.CoefficientIndex s b arity)\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                (@SubsemiringClass.instCharZero.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubringClass.toSubsemiringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                      (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubfieldClass.toSubringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))))\n                  Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n              (@Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalCoefficient s b arity D))\n            x)\n        Bool Bool Bool.fintype Bool.fintype (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n        (@Holant.Algebraic.FixedField.encoding.{0}\n          (@Subtype.{1}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            fun\n              (x :\n                @Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x) =>\n            @Membership.mem.{0, 0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  (@SubsemiringClass.instCharZero.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubringClass.toSubsemiringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                        (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubfieldClass.toSubringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))))\n                    Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  Rat.instField\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex)\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    (@SubsemiringClass.instCharZero.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubringClass.toSubsemiringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                          (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SubfieldClass.toSubringClass.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))))\n                      Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.instSetLike.{0, 0} Rat\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  Rat.instField\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex)\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    (@SubsemiringClass.instCharZero.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubringClass.toSubsemiringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                          (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SubfieldClass.toSubringClass.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))))\n                      Holant.Tractable.AlgebraicComplex Complex.instCharZero))))\n              (@Holant.Algebraic.familyField.{0, 0} (Holant.Complexity.ExactSignatureTables.CoefficientIndex s b arity)\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  (@SubsemiringClass.instCharZero.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubringClass.toSubsemiringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                        (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubfieldClass.toSubringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))))\n                    Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n                (@Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalCoefficient s b arity D))\n              x)\n          (@IntermediateField.toField.{0, 0} Rat\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            Rat.instField\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              (@SubsemiringClass.instCharZero.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SubringClass.toSubsemiringClass.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                    (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubfieldClass.toSubringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))))\n                Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n            (@Holant.Algebraic.familyField.{0, 0} (Holant.Complexity.ExactSignatureTables.CoefficientIndex s b arity)\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                (@SubsemiringClass.instCharZero.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubringClass.toSubsemiringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                      (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubfieldClass.toSubringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))))\n                  Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n              (@Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalCoefficient s b arity D)))\n          (@IntermediateField.algebra'.{0, 0, 0} Rat Rat\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            Rat.instField\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              (@SubsemiringClass.instCharZero.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SubringClass.toSubsemiringClass.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                    (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubfieldClass.toSubringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))))\n                Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n            (@Holant.Algebraic.familyField.{0, 0} (Holant.Complexity.ExactSignatureTables.CoefficientIndex s b arity)\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                (@SubsemiringClass.instCharZero.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubringClass.toSubsemiringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                      (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubfieldClass.toSubringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))))\n                  Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n              (@Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalCoefficient s b arity D))\n            Rat.commSemiring (@instSMulOfMul.{0} Rat Rat.instMul)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              (@SubsemiringClass.instCharZero.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SubringClass.toSubsemiringClass.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                    (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubfieldClass.toSubringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))))\n                Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n            (@IsScalarTower.rat.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@DivisionRing.toRing.{0} Rat Rat.instDivisionRing)\n              (@Ring.toAddCommGroup.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@DivisionRing.toRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))))\n              (@Algebra.toModule.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.commSemiring\n                (@CommSemiring.toSemiring.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Semifield.toCommSemiring.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toSemifield.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))))\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  (@SubsemiringClass.instCharZero.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubringClass.toSubsemiringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                        (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubfieldClass.toSubringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))))\n                    Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n              (@Semiring.toModule.{0} Rat Rat.semiring)\n              (@Algebra.toModule.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.commSemiring\n                (@CommSemiring.toSemiring.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Semifield.toCommSemiring.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toSemifield.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))))\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  (@SubsemiringClass.instCharZero.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubringClass.toSubsemiringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                        (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubfieldClass.toSubringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))))\n                    Holant.Tractable.AlgebraicComplex Complex.instCharZero)))))\n          (@Module.finrank.{0, 0} Rat\n            (@Subtype.{1}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              fun\n                (x :\n                  @Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x) =>\n              @Membership.mem.{0, 0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.{0, 0} Rat\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  Rat.instField\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex)\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    (@SubsemiringClass.instCharZero.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubringClass.toSubsemiringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                          (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SubfieldClass.toSubringClass.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))))\n                      Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    Rat.instField\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex)\n                    (@DivisionRing.toRatAlgebra.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@Field.toDivisionRing.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex))\n                      (@SubsemiringClass.instCharZero.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SubringClass.toSubsemiringClass.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                            (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SubfieldClass.toSubringClass.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))))\n                        Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.instSetLike.{0, 0} Rat\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    Rat.instField\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex)\n                    (@DivisionRing.toRatAlgebra.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@Field.toDivisionRing.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex))\n                      (@SubsemiringClass.instCharZero.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SubringClass.toSubsemiringClass.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                            (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SubfieldClass.toSubringClass.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))))\n                        Holant.Tractable.AlgebraicComplex Complex.instCharZero))))\n                (@Holant.Algebraic.familyField.{0, 0}\n                  (Holant.Complexity.ExactSignatureTables.CoefficientIndex s b arity)\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex)\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    (@SubsemiringClass.instCharZero.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubringClass.toSubsemiringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                          (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SubfieldClass.toSubringClass.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))))\n                      Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n                  (@Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalCoefficient s b arity D))\n                x)\n            Rat.semiring\n            (@AddSubmonoidClass.toAddCommMonoid.{0, 0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Semiring.toAddCommMonoid.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@CommSemiring.toSemiring.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Semifield.toCommSemiring.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toSemifield.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex)))))\n              (@IntermediateField.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  (@SubsemiringClass.instCharZero.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubringClass.toSubsemiringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                        (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubfieldClass.toSubringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))))\n                    Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n              (@IntermediateField.instSetLike.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  (@SubsemiringClass.instCharZero.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubringClass.toSubsemiringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                        (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubfieldClass.toSubringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))))\n                    Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n              (@SubsemiringClass.toAddSubmonoidClass.{0, 0}\n                (@IntermediateField.{0, 0} Rat\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  Rat.instField\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex)\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    (@SubsemiringClass.instCharZero.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubringClass.toSubsemiringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                          (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SubfieldClass.toSubringClass.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))))\n                      Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Semiring.toNonAssocSemiring.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@CommSemiring.toSemiring.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Semifield.toCommSemiring.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@Field.toSemifield.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex)))))\n                (@IntermediateField.instSetLike.{0, 0} Rat\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  Rat.instField\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex)\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    (@SubsemiringClass.instCharZero.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubringClass.toSubsemiringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                          (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SubfieldClass.toSubringClass.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))))\n                      Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n                (@SubringClass.toSubsemiringClass.{0, 0}\n                  (@IntermediateField.{0, 0} Rat\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    Rat.instField\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex)\n                    (@DivisionRing.toRatAlgebra.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@Field.toDivisionRing.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex))\n                      (@SubsemiringClass.instCharZero.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SubringClass.toSubsemiringClass.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                            (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SubfieldClass.toSubringClass.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))))\n                        Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@NonAssocCommRing.toNonAssocRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@CommRing.toNonAssocCommRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@Field.toCommRing.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex))))\n                  (@IntermediateField.instSetLike.{0, 0} Rat\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    Rat.instField\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex)\n                    (@DivisionRing.toRatAlgebra.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@Field.toDivisionRing.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex))\n                      (@SubsemiringClass.instCharZero.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SubringClass.toSubsemiringClass.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                            (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SubfieldClass.toSubringClass.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))))\n                        Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n                  (@SubfieldClass.toSubringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      Rat.instField\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex)\n                      (@DivisionRing.toRatAlgebra.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@Field.toDivisionRing.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                            Holant.Tractable.AlgebraicComplex))\n                        (@SubsemiringClass.instCharZero.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SubringClass.toSubsemiringClass.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                              (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SubfieldClass.toSubringClass.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))))\n                          Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    (@IntermediateField.instSetLike.{0, 0} Rat\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      Rat.instField\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex)\n                      (@DivisionRing.toRatAlgebra.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@Field.toDivisionRing.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                            Holant.Tractable.AlgebraicComplex))\n                        (@SubsemiringClass.instCharZero.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SubringClass.toSubsemiringClass.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                              (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SubfieldClass.toSubringClass.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))))\n                          Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n                    (@IntermediateField.instSubfieldClass.{0, 0} Rat\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      Rat.instField\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex)\n                      (@DivisionRing.toRatAlgebra.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@Field.toDivisionRing.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                            Holant.Tractable.AlgebraicComplex))\n                        (@SubsemiringClass.instCharZero.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SubringClass.toSubsemiringClass.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                              (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SubfieldClass.toSubringClass.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))))\n                          Holant.Tractable.AlgebraicComplex Complex.instCharZero))))))\n              (@Holant.Algebraic.familyField.{0, 0} (Holant.Complexity.ExactSignatureTables.CoefficientIndex s b arity)\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  (@SubsemiringClass.instCharZero.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubringClass.toSubsemiringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                        (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubfieldClass.toSubringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))))\n                    Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n                (@Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalCoefficient s b arity D)))\n            (@IntermediateField.module'.{0, 0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                (@SubsemiringClass.instCharZero.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SubringClass.toSubsemiringClass.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                      (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubfieldClass.toSubringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))))\n                  Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n              (@Holant.Algebraic.familyField.{0, 0} (Holant.Complexity.ExactSignatureTables.CoefficientIndex s b arity)\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  (@SubsemiringClass.instCharZero.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubringClass.toSubsemiringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                        (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubfieldClass.toSubringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))))\n                    Holant.Tractable.AlgebraicComplex Complex.instCharZero))\n                (@Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalCoefficient s b arity D))\n              Rat Rat.semiring (@instSMulOfMul.{0} Rat Rat.instMul)\n              (@Algebra.toModule.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.commSemiring\n                (@CommSemiring.toSemiring.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Semifield.toCommSemiring.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toSemifield.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))))\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  (@SubsemiringClass.instCharZero.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SubringClass.toSubsemiringClass.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                        (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubfieldClass.toSubringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))))\n                    Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n              (@IsScalarTower.rat.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@DivisionRing.toRing.{0} Rat Rat.instDivisionRing)\n                (@Ring.toAddCommGroup.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@DivisionRing.toRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))))\n                (@Algebra.toModule.{0, 0} Rat\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  Rat.commSemiring\n                  (@CommSemiring.toSemiring.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Semifield.toCommSemiring.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@Field.toSemifield.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex))))\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    (@SubsemiringClass.instCharZero.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubringClass.toSubsemiringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                          (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SubfieldClass.toSubringClass.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))))\n                      Holant.Tractable.AlgebraicComplex Complex.instCharZero)))\n                (@Semiring.toModule.{0} Rat Rat.semiring)\n                (@Algebra.toModule.{0, 0} Rat\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  Rat.commSemiring\n                  (@CommSemiring.toSemiring.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Semifield.toCommSemiring.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@Field.toSemifield.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex))))\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    (@SubsemiringClass.instCharZero.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@Semiring.toNonAssocSemiring.{0} Complex Complex.instSemiring)\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SubringClass.toSubsemiringClass.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                          (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SubfieldClass.toSubringClass.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))))\n                      Holant.Tractable.AlgebraicComplex Complex.instCharZero))))))\n          (@Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalPresentation s b arity D))\n        (@Holant.LocalDrafts.Tractability.AffineMachine.FamilyField.originalValue s b arity D)"},{"category":"core","display_name":"Counting.Algorithm.Affine.Input","family":"core-affine","import":"Counting.Algorithm.Affine","kind":"definition","module":"Counting.Algorithm.Affine.Basic","name":"Counting.Algorithm.Affine.Input","readable_type":"Nat → Type","role":"definition","source_line":19,"source_path":"projects/affine-algorithm/Counting/Algorithm/Affine/Basic.lean","source_sha256":"e5217aa0d41cd3477c2c62a10217af057debf9c8818a37e378a5388782a8800e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/affine-algorithm/Counting/Algorithm/Affine/Basic.lean#L19","summary":"Input.","type":"(n : Nat) → Type"},{"category":"core","display_name":"Counting.Algorithm.Affine.compile_correct","family":"core-affine","import":"Counting.Algorithm.Affine","kind":"theorem","module":"Counting.Algorithm.Affine.Executor","name":"Counting.Algorithm.Affine.compile_correct","readable_type":"∀ {A : Type} {n : Nat} (scales : A → Subtype fun x => SetLike.instMembership.mem Holant.Tractable.AlgebraicComplex x)\n  (S : Counting.Algorithm.Affine.Support n) (Q : Counting.Algorithm.Affine.Phase n)\n  (initial : Counting.Algorithm.Affine.Program A),\n  Eq (Counting.Algorithm.Affine.interpret scales (Counting.Algorithm.Affine.compile S Q initial))\n    (Counting.Algorithm.Affine.partition\n      { scale := Counting.Algorithm.Affine.interpret scales initial, support := S, phase := Q })","role":"theorem","source_line":34,"source_path":"projects/affine-algorithm/Counting/Algorithm/Affine/Executor.lean","source_sha256":"54d7793ddf5cb3952e4544acd196c52eb42def7e96958f6575e82fb949bccd52","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/affine-algorithm/Counting/Algorithm/Affine/Executor.lean#L34","summary":"Compile correct.","type":"∀ {A : Type} {n : Nat}\n  (scales :\n    A →\n      @Subtype.{1} Complex fun (x : Complex) =>\n        @Membership.mem.{0, 0} Complex\n          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero))\n          (@SetLike.instMembership.{0, 0}\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            Complex\n            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)))\n          Holant.Tractable.AlgebraicComplex x)\n  (S : Counting.Algorithm.Affine.Support n) (Q : Counting.Algorithm.Affine.Phase n)\n  (initial : Counting.Algorithm.Affine.Program A),\n  @Eq.{1}\n    (@Subtype.{1} Complex fun (x : Complex) =>\n      @Membership.mem.{0, 0} Complex\n        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n            Complex.instCharZero))\n        (@SetLike.instMembership.{0, 0}\n          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero))\n          Complex\n          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero)))\n        Holant.Tractable.AlgebraicComplex x)\n    (@Counting.Algorithm.Affine.interpret A scales (@Counting.Algorithm.Affine.compile A n S Q initial))\n    (@Counting.Algorithm.Affine.partition n\n      (@Holant.LocalDrafts.Tractability.AffineMachine.State.mk n (@Counting.Algorithm.Affine.interpret A scales initial)\n        S Q))"},{"category":"core","display_name":"Counting.Algorithm.Affine.evaluate_correct","family":"core-affine","import":"Counting.Algorithm.Affine","kind":"theorem","module":"Counting.Algorithm.Affine.Basic","name":"Counting.Algorithm.Affine.evaluate_correct","readable_type":"∀ {n : Nat} (A : Counting.Algorithm.Affine.Input n),\n  Eq (Counting.Algorithm.Affine.evaluate A) (Counting.Algorithm.Affine.partition A)","role":"theorem","source_line":27,"source_path":"projects/affine-algorithm/Counting/Algorithm/Affine/Basic.lean","source_sha256":"e5217aa0d41cd3477c2c62a10217af057debf9c8818a37e378a5388782a8800e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/affine-algorithm/Counting/Algorithm/Affine/Basic.lean#L27","summary":"The recursive algorithm eliminates one variable on each active branch.","type":"∀ {n : Nat} (A : Counting.Algorithm.Affine.Input n),\n  @Eq.{1}\n    (@Subtype.{1} Complex fun (x : Complex) =>\n      @Membership.mem.{0, 0} Complex\n        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n            Complex.instCharZero))\n        (@SetLike.instMembership.{0, 0}\n          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero))\n          Complex\n          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero)))\n        Holant.Tractable.AlgebraicComplex x)\n    (@Counting.Algorithm.Affine.evaluate n A) (@Counting.Algorithm.Affine.partition n A)"},{"category":"core","display_name":"Counting.Algorithm.Affine.run_correct","family":"core-affine","import":"Counting.Algorithm.Affine","kind":"theorem","module":"Counting.Algorithm.Affine.Executor","name":"Counting.Algorithm.Affine.run_correct","readable_type":"∀ {n : Nat} (A : Counting.Algorithm.Affine.Input n)\n  (stack : List (Subtype fun x => SetLike.instMembership.mem Holant.Tractable.AlgebraicComplex x)),\n  Eq\n    (Holant.OneHot.StackProgram.run\n      (Holant.LocalDrafts.Tractability.AffineMachine.ScalarCode.coefficient fun x => A.scale)\n      (Holant.LocalDrafts.Tractability.ProductMachine.Expr.code (Counting.Algorithm.Affine.program A.support A.phase))\n      stack)\n    (Option.some\n      { fst := List.cons (Counting.Algorithm.Affine.partition A) stack,\n        snd :=\n          Holant.LocalDrafts.Tractability.ProductMachine.Expr.trace\n            (Holant.LocalDrafts.Tractability.AffineMachine.ScalarCode.coefficient fun x => A.scale)\n            (Counting.Algorithm.Affine.program A.support A.phase) })","role":"theorem","source_line":47,"source_path":"projects/affine-algorithm/Counting/Algorithm/Affine/Executor.lean","source_sha256":"54d7793ddf5cb3952e4544acd196c52eb42def7e96958f6575e82fb949bccd52","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/affine-algorithm/Counting/Algorithm/Affine/Executor.lean#L47","summary":"Execute emitted bytecode with the actual underflow-checking stack interpreter.","type":"∀ {n : Nat} (A : Counting.Algorithm.Affine.Input n)\n  (stack :\n    List.{0}\n      (@Subtype.{1} Complex fun (x : Complex) =>\n        @Membership.mem.{0, 0} Complex\n          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero))\n          (@SetLike.instMembership.{0, 0}\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            Complex\n            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)))\n          Holant.Tractable.AlgebraicComplex x)),\n  @Eq.{1}\n    (Option.{0}\n      (Prod.{0, 0}\n        (List.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x))\n        (List.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x))))\n    (@Holant.OneHot.StackProgram.run.{0, 0} (Holant.LocalDrafts.Tractability.AffineMachine.ScalarCode.Atom Unit)\n      (@Subtype.{1} Complex fun (x : Complex) =>\n        @Membership.mem.{0, 0} Complex\n          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero))\n          (@SetLike.instMembership.{0, 0}\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            Complex\n            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)))\n          Holant.Tractable.AlgebraicComplex x)\n      (@SubsemiringClass.toCommSemiring.{0, 0}\n        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n            Complex.instCharZero))\n        Holant.Tractable.AlgebraicComplex Complex Complex.instCommSemiring\n        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n            Complex.instCharZero))\n        (@SubringClass.toSubsemiringClass.{0, 0}\n          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero))\n          Complex\n          (@NonAssocCommRing.toNonAssocRing.{0} Complex (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero))\n          (@SubfieldClass.toSubringClass.{0, 0}\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)))))\n      (@Holant.LocalDrafts.Tractability.AffineMachine.ScalarCode.coefficient Unit fun (x : Unit) =>\n        @Holant.LocalDrafts.Tractability.AffineMachine.State.scale n A)\n      (@Holant.LocalDrafts.Tractability.ProductMachine.Expr.code\n        (Holant.LocalDrafts.Tractability.AffineMachine.ScalarCode.Atom Unit)\n        (@Counting.Algorithm.Affine.program n (@Holant.LocalDrafts.Tractability.AffineMachine.State.support n A)\n          (@Holant.LocalDrafts.Tractability.AffineMachine.State.phase n A)))\n      stack)\n    (@Option.some.{0}\n      (Prod.{0, 0}\n        (List.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x))\n        (List.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)))\n      (@Prod.mk.{0, 0}\n        (List.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x))\n        (List.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x))\n        (@List.cons.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@Counting.Algorithm.Affine.partition n A) stack)\n        (@Holant.LocalDrafts.Tractability.ProductMachine.Expr.trace\n          (Holant.LocalDrafts.Tractability.AffineMachine.ScalarCode.Atom Unit)\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@SubsemiringClass.toCommSemiring.{0, 0}\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            Holant.Tractable.AlgebraicComplex Complex Complex.instCommSemiring\n            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@SubringClass.toSubsemiringClass.{0, 0}\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              Complex\n              (@NonAssocCommRing.toNonAssocRing.{0} Complex (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SubfieldClass.toSubringClass.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))))\n          (@Holant.LocalDrafts.Tractability.AffineMachine.ScalarCode.coefficient Unit fun (x : Unit) =>\n            @Holant.LocalDrafts.Tractability.AffineMachine.State.scale n A)\n          (@Counting.Algorithm.Affine.program n (@Holant.LocalDrafts.Tractability.AffineMachine.State.support n A)\n            (@Holant.LocalDrafts.Tractability.AffineMachine.State.phase n A)))))"},{"category":"core","display_name":"Counting.Algorithm.Affine.transitions_le","family":"core-affine","import":"Counting.Algorithm.Affine","kind":"theorem","module":"Counting.Algorithm.Affine.Executor","name":"Counting.Algorithm.Affine.transitions_le","readable_type":"∀ {n : Nat} (S : Counting.Algorithm.Affine.Support n) (Q : Counting.Algorithm.Affine.Phase n),\n  instLENat.le (Counting.Algorithm.Affine.transitions S Q) n","role":"theorem","source_line":73,"source_path":"projects/affine-algorithm/Counting/Algorithm/Affine/Executor.lean","source_sha256":"54d7793ddf5cb3952e4544acd196c52eb42def7e96958f6575e82fb949bccd52","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/affine-algorithm/Counting/Algorithm/Affine/Executor.lean#L73","summary":"Transitions le.","type":"∀ {n : Nat} (S : Counting.Algorithm.Affine.Support n) (Q : Counting.Algorithm.Affine.Phase n),\n  @LE.le.{0} Nat instLENat (@Counting.Algorithm.Affine.transitions n S Q) n"},{"category":"core","display_name":"Counting.Algorithm.CPOG.countRoot_eq_partition","family":"core-cpog","import":"Counting.Algorithm.CPOG.Bridge","kind":"theorem","module":"Counting.Algorithm.CPOG.Bridge","name":"Counting.Algorithm.CPOG.countRoot_eq_partition","readable_type":"∀ {n : Nat} (F : Counting.Algorithm.CPOG.CNF.Formula n) (pog : Pog) (root : LeanSAT.ILit),\n  Finset.instPartialOrder.le (pog.toPropForm root).vars (Counting.Algorithm.CPOG.FiniteSemantics.declared n) →\n    partitioned (pog.toPropForm root) →\n      Eq (LeanSAT.Cnf.toPropFun F.toICnf) (Quotient.mk (LeanSAT.Model.PropFun.setoid Var) (pog.toPropForm root)) →\n        Eq (Counting.Algorithm.CPOG.countRoot pog n root) (F.toInstance.partition Empty.elim)","role":"theorem","source_line":23,"source_path":"projects/knowledge-compilation/Counting/Algorithm/CPOG/Bridge.lean","source_sha256":"41ec11ef89534392b9f0906267565942ff6767fb02e99a62e5d21102fe3739c1","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/knowledge-compilation/Counting/Algorithm/CPOG/Bridge.lean#L23","summary":"Supplied compiled POG evaluation equals the occurrence-preserving S1 model count. Partitioning and support coverage are independent hypotheses, as in the original counter.","type":"∀ {n : Nat} (F : Counting.Algorithm.CPOG.CNF.Formula n) (pog : Pog) (root : LeanSAT.ILit)\n  (hvars :\n    @LE.le.{0} (Finset.{0} Var)\n      (@Preorder.toLE.{0} (Finset.{0} Var)\n        (@PartialOrder.toPreorder.{0} (Finset.{0} Var) (@Finset.instPartialOrder.{0} Var)))\n      (@LeanSAT.Model.PropForm.vars.{0} Var instDecidableEqPNat (Pog.toPropForm pog root))\n      (Counting.Algorithm.CPOG.FiniteSemantics.declared n))\n  (hpart : @partitioned.{0} Var instDecidableEqPNat (Pog.toPropForm pog root))\n  (heq :\n    @Eq.{1} (LeanSAT.Model.PropFun.{0} LeanSAT.IVar)\n      (@LeanSAT.Cnf.toPropFun.{0, 0} LeanSAT.ILit LeanSAT.IVar LeanSAT.instLitVarILitIVar\n        (@Counting.Algorithm.CPOG.CNF.Formula.toICnf n F))\n      (@Quotient.mk.{1} (LeanSAT.Model.PropForm.{0} Var) (LeanSAT.Model.PropFun.setoid.{0} Var)\n        (Pog.toPropForm pog root))),\n  @Eq.{1} Nat (Counting.Algorithm.CPOG.countRoot pog n root)\n    (@Counting.Model.OpenInstance.partition Bool Nat (Fin (@List.length.{0} (Counting.Algorithm.CPOG.CNF.Clause n) F))\n      Empty (Fin n)\n      (@Counting.Algorithm.CPOG.CNF.Formula.language n Nat (@MulZeroClass.toZero.{0} Nat Nat.instMulZeroClass)\n        Nat.instOne F)\n      Nat.instCommSemiring Bool.fintype (Fin.fintype n) (instDecidableEqFin n)\n      (@Counting.Algorithm.CPOG.CNF.Formula.toInstance n F) (@Empty.elim.{1} Bool))"},{"category":"core","display_name":"Counting.Algorithm.CPOG.eval_of_compiled_equivalence","family":"core-cpog","import":"Counting.Algorithm.CPOG.Bridge","kind":"theorem","module":"Counting.Algorithm.CPOG.Bridge","name":"Counting.Algorithm.CPOG.eval_of_compiled_equivalence","readable_type":"∀ {n : Nat} (F : Counting.Algorithm.CPOG.CNF.Formula n) (pog : Pog) (root : LeanSAT.ILit),\n  Eq (LeanSAT.Cnf.toPropFun F.toICnf) (Quotient.mk (LeanSAT.Model.PropFun.setoid Var) (pog.toPropForm root)) →\n    ∀ (a : Fin n → Bool),\n      Eq (LeanSAT.Model.PropForm.eval (Counting.Algorithm.CPOG.FiniteSemantics.extend a) (pog.toPropForm root))\n        (F.eval a)","role":"theorem","source_line":14,"source_path":"projects/knowledge-compilation/Counting/Algorithm/CPOG/Bridge.lean","source_sha256":"41ec11ef89534392b9f0906267565942ff6767fb02e99a62e5d21102fe3739c1","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/knowledge-compilation/Counting/Algorithm/CPOG/Bridge.lean#L14","summary":"The actual original CNF equality implies pointwise agreement on all declared assignments.","type":"∀ {n : Nat} (F : Counting.Algorithm.CPOG.CNF.Formula n) (pog : Pog) (root : LeanSAT.ILit)\n  (heq :\n    @Eq.{1} (LeanSAT.Model.PropFun.{0} LeanSAT.IVar)\n      (@LeanSAT.Cnf.toPropFun.{0, 0} LeanSAT.ILit LeanSAT.IVar LeanSAT.instLitVarILitIVar\n        (@Counting.Algorithm.CPOG.CNF.Formula.toICnf n F))\n      (@Quotient.mk.{1} (LeanSAT.Model.PropForm.{0} Var) (LeanSAT.Model.PropFun.setoid.{0} Var)\n        (Pog.toPropForm pog root)))\n  (a : Fin n → Bool),\n  @Eq.{1} Bool\n    (@LeanSAT.Model.PropForm.eval.{0} PNat (@Counting.Algorithm.CPOG.FiniteSemantics.extend n a)\n      (Pog.toPropForm pog root))\n    (@Counting.Algorithm.CPOG.CNF.Formula.eval n F a)"},{"category":"core","display_name":"Counting.Algorithm.CPOG.ringRoot_eq_partition","family":"core-cpog","import":"Counting.Algorithm.CPOG.Bridge","kind":"theorem","module":"Counting.Algorithm.CPOG.Bridge","name":"Counting.Algorithm.CPOG.ringRoot_eq_partition","readable_type":"∀ {R : Type} [inst : CommRing R] {n : Nat} (F : Counting.Algorithm.CPOG.CNF.Formula n) (pog : Pog) (root : LeanSAT.ILit)\n  (w : Var → R),\n  Finset.instPartialOrder.le (pog.toPropForm root).vars (Counting.Algorithm.CPOG.FiniteSemantics.declared n) →\n    partitioned (pog.toPropForm root) →\n      Eq (LeanSAT.Cnf.toPropFun F.toICnf) (Quotient.mk (LeanSAT.Model.PropFun.setoid Var) (pog.toPropForm root)) →\n        Eq (Counting.Algorithm.CPOG.ringRoot pog w root)\n          ((F.weightedInstance fun i => w i.val.succPNat).partition Empty.elim)","role":"theorem","source_line":39,"source_path":"projects/knowledge-compilation/Counting/Algorithm/CPOG/Bridge.lean","source_sha256":"41ec11ef89534392b9f0906267565942ff6767fb02e99a62e5d21102fe3739c1","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/knowledge-compilation/Counting/Algorithm/CPOG/Bridge.lean#L39","summary":"The same actual array evaluator computes complementary-weight S1 partitions. Weights may be negative or zero. Each declared variable contributes one unary occurrence.","type":"∀ {R : Type} [inst : CommRing.{0} R] {n : Nat} (F : Counting.Algorithm.CPOG.CNF.Formula n) (pog : Pog)\n  (root : LeanSAT.ILit) (w : Var → R)\n  (hvars :\n    @LE.le.{0} (Finset.{0} Var)\n      (@Preorder.toLE.{0} (Finset.{0} Var)\n        (@PartialOrder.toPreorder.{0} (Finset.{0} Var) (@Finset.instPartialOrder.{0} Var)))\n      (@LeanSAT.Model.PropForm.vars.{0} Var instDecidableEqPNat (Pog.toPropForm pog root))\n      (Counting.Algorithm.CPOG.FiniteSemantics.declared n))\n  (hpart : @partitioned.{0} Var instDecidableEqPNat (Pog.toPropForm pog root))\n  (heq :\n    @Eq.{1} (LeanSAT.Model.PropFun.{0} LeanSAT.IVar)\n      (@LeanSAT.Cnf.toPropFun.{0, 0} LeanSAT.ILit LeanSAT.IVar LeanSAT.instLitVarILitIVar\n        (@Counting.Algorithm.CPOG.CNF.Formula.toICnf n F))\n      (@Quotient.mk.{1} (LeanSAT.Model.PropForm.{0} Var) (LeanSAT.Model.PropFun.setoid.{0} Var)\n        (Pog.toPropForm pog root))),\n  @Eq.{1} R (@Counting.Algorithm.CPOG.ringRoot R inst pog w root)\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0} (Fin (@List.length.{0} (Counting.Algorithm.CPOG.CNF.Clause n) F)) (Fin n)) Empty (Fin n)\n      (@Counting.Algorithm.CPOG.CNF.Formula.weightedLanguage n R inst F fun (i : Fin n) =>\n        w (Nat.succPNat (@Fin.val n i)))\n      (@CommRing.toCommSemiring.{0} R inst) Bool.fintype (Fin.fintype n) (instDecidableEqFin n)\n      (@Counting.Algorithm.CPOG.CNF.Formula.weightedInstance n R inst F fun (i : Fin n) =>\n        w (Nat.succPNat (@Fin.val n i)))\n      (@Empty.elim.{1} Bool))"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Acceptance.originalQuadraticViaPublicEntry","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Acceptance","kind":"definition","module":"Counting.Algorithm.FieldArithmetic.Acceptance","name":"Counting.Algorithm.FieldArithmetic.Acceptance.originalQuadraticViaPublicEntry","name_semantics":"actual named kernel declaration","readable_type":"Turing.TM2OutputsInTime\n  (Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer\n      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis).tm\n  (List.map\n    (EquivLike.toFunLike.coe\n      (Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer\n            Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis).inputAlphabet.symm)\n    ((Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding\n          Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis).encode\n      Counting.Algorithm.InterpolationMachine.Materialized.Clients.quadratic))\n  (Option.some\n    (List.map\n      (EquivLike.toFunLike.coe\n        (Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer\n              Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis).outputAlphabet.symm)\n      ((PlanarHom.Complexity.numberFieldEncoding\n            Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis).encode\n        2)))\n  (Polynomial.eval\n    (List.length\n      ((Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding\n            Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis).encode\n        Counting.Algorithm.InterpolationMachine.Materialized.Clients.quadratic))\n    (Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer\n        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis).time)","role":"client","source_line":13,"source_path":"projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Acceptance.lean","source_sha256":"868fdd873e9aa72dc3ea44a83cf9a62b1dc1fa616f530bed3b1a8d4a2309068c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Acceptance.lean#L13","type":"Turing.TM2OutputsInTime\n  (@Turing.TM2ComputableAux.tm Bool Bool\n    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n      Rat Bool Bool\n      (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Bool\n        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n          (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n            (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n      (@Computability.Encoding.encode.{0, 0} Rat Bool\n        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n          (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n      (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n        (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype Bool.fintype\n        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n          (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n            (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n          (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n        (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField instDecidableEqRat\n          (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))\n  (@List.map.{0, 0} Bool\n    (Turing.FinTM2.Γ\n      (@Turing.TM2ComputableAux.tm Bool Bool\n        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n          (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n          (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Bool\n            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n          (@Computability.Encoding.encode.{0, 0} Rat Bool\n            (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n              (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n          (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n            (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype Bool.fintype\n            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n            (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n              (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n            (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField instDecidableEqRat\n              (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))\n      (Turing.FinTM2.k₀\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n            (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n            (@Computability.Encoding.encode.{0, 0} Rat Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n            (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype Bool.fintype\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField instDecidableEqRat\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))))\n    (@DFunLike.coe.{1, 1, 1}\n      (Equiv.{1, 1} Bool\n        (Turing.FinTM2.Γ\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n              (@Computability.Encoding.encode.{0, 0} Rat Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                  (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                  (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField instDecidableEqRat\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))\n          (Turing.FinTM2.k₀\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                (@Computability.Encoding.encode.{0, 0} Rat Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                    (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype\n                  Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                    (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField\n                    instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))))))\n      Bool\n      (fun (x : Bool) =>\n        Turing.FinTM2.Γ\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n              (@Computability.Encoding.encode.{0, 0} Rat Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                  (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                  (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField instDecidableEqRat\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))\n          (Turing.FinTM2.k₀\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                (@Computability.Encoding.encode.{0, 0} Rat Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                    (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype\n                  Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                    (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField\n                    instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))))\n      (@EquivLike.toFunLike.{1, 1, 1}\n        (Equiv.{1, 1} Bool\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                (@Computability.Encoding.encode.{0, 0} Rat Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                    (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype\n                  Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                    (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField\n                    instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))\n            (Turing.FinTM2.k₀\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n                  (@Computability.Encoding.encode.{0, 0}\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                  (@Computability.Encoding.encode.{0, 0} Rat Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                      (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype\n                    Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                      (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField\n                      instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))))))\n        Bool\n        (Turing.FinTM2.Γ\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n              (@Computability.Encoding.encode.{0, 0} Rat Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                  (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                  (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField instDecidableEqRat\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))\n          (Turing.FinTM2.k₀\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                (@Computability.Encoding.encode.{0, 0} Rat Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                    (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype\n                  Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                    (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField\n                    instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))))\n        (@Equiv.instEquivLike.{1, 1} Bool\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                (@Computability.Encoding.encode.{0, 0} Rat Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                    (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype\n                  Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                    (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField\n                    instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))\n            (Turing.FinTM2.k₀\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n                  (@Computability.Encoding.encode.{0, 0}\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                  (@Computability.Encoding.encode.{0, 0} Rat Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                      (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype\n                    Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                      (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField\n                      instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))))))\n      (@Equiv.symm.{1, 1}\n        (Turing.FinTM2.Γ\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n              (@Computability.Encoding.encode.{0, 0} Rat Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                  (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                  (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField instDecidableEqRat\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))\n          (Turing.FinTM2.k₀\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                (@Computability.Encoding.encode.{0, 0} Rat Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                    (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype\n                  Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                    (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField\n                    instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))))\n        Bool\n        (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n            (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n            (@Computability.Encoding.encode.{0, 0} Rat Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n            (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype Bool.fintype\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField instDecidableEqRat\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))))\n    (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n        (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)\n      Counting.Algorithm.InterpolationMachine.Materialized.Clients.quadratic))\n  (@Option.some.{0}\n    (List.{0}\n      (Turing.FinTM2.Γ\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n            (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n            (@Computability.Encoding.encode.{0, 0} Rat Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n            (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype Bool.fintype\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField instDecidableEqRat\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))\n        (Turing.FinTM2.k₁\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n              (@Computability.Encoding.encode.{0, 0} Rat Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                  (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                  (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField instDecidableEqRat\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))))))\n    (@List.map.{0, 0} Bool\n      (Turing.FinTM2.Γ\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n            (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n            (@Computability.Encoding.encode.{0, 0} Rat Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n            (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype Bool.fintype\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField instDecidableEqRat\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))\n        (Turing.FinTM2.k₁\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n              (@Computability.Encoding.encode.{0, 0} Rat Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                  (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                  (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField instDecidableEqRat\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))))\n      (@DFunLike.coe.{1, 1, 1}\n        (Equiv.{1, 1} Bool\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                (@Computability.Encoding.encode.{0, 0} Rat Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                    (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype\n                  Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                    (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField\n                    instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n                  (@Computability.Encoding.encode.{0, 0}\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                  (@Computability.Encoding.encode.{0, 0} Rat Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                      (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype\n                    Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                      (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField\n                      instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))))))\n        Bool\n        (fun (x : Bool) =>\n          Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                (@Computability.Encoding.encode.{0, 0} Rat Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                    (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype\n                  Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                    (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField\n                    instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n                  (@Computability.Encoding.encode.{0, 0}\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                  (@Computability.Encoding.encode.{0, 0} Rat Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                      (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype\n                    Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                      (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField\n                      instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))))\n        (@EquivLike.toFunLike.{1, 1, 1}\n          (Equiv.{1, 1} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n                  (@Computability.Encoding.encode.{0, 0}\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                  (@Computability.Encoding.encode.{0, 0} Rat Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                      (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype\n                    Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                      (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField\n                      instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                          (@Algebra.id.{0} Rat Rat.commSemiring)\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                    (@Computability.Encoding.encode.{0, 0} Rat Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                        (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField\n                          (@Algebra.id.{0} Rat Rat.commSemiring)\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                          (@Algebra.id.{0} Rat Rat.commSemiring)\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                        (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField\n                          (@Algebra.id.{0} Rat Rat.commSemiring)\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField\n                        instDecidableEqRat)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField\n                        instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))))))\n          Bool\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                (@Computability.Encoding.encode.{0, 0} Rat Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                    (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype\n                  Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                    (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField\n                    instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n                  (@Computability.Encoding.encode.{0, 0}\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                  (@Computability.Encoding.encode.{0, 0} Rat Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                      (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype\n                    Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                      (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField\n                      instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))))\n          (@Equiv.instEquivLike.{1, 1} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n                  (@Computability.Encoding.encode.{0, 0}\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                  (@Computability.Encoding.encode.{0, 0} Rat Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                      (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype\n                    Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                      (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField\n                      instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                          (@Algebra.id.{0} Rat Rat.commSemiring)\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                    (@Computability.Encoding.encode.{0, 0} Rat Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                        (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField\n                          (@Algebra.id.{0} Rat Rat.commSemiring)\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                          (@Algebra.id.{0} Rat Rat.commSemiring)\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                        (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField\n                          (@Algebra.id.{0} Rat Rat.commSemiring)\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField\n                        instDecidableEqRat)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField\n                        instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))))))\n        (@Equiv.symm.{1, 1}\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                (@Computability.Encoding.encode.{0, 0} Rat Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                    (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype\n                  Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                    (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField\n                    instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n                  (@Computability.Encoding.encode.{0, 0}\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                  (@Computability.Encoding.encode.{0, 0} Rat Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                      (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype\n                    Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                      (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField\n                      instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))))\n          Bool\n          (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n              (@Computability.Encoding.encode.{0, 0} Rat Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                  (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n                  (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField instDecidableEqRat\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))))\n      (@PlanarHom.Complexity.BitEncoding.encode Rat\n        (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)\n        (@OfNat.ofNat.{0} Rat (nat_lit 2) (@Rat.instOfNat (nat_lit 2))))))\n  (@Polynomial.eval.{0} Nat Nat.instSemiring\n    (@List.length.{0} Bool\n      (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n          (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)\n        Counting.Algorithm.InterpolationMachine.Materialized.Clients.quadratic))\n    (@Turing.TM2ComputableInPolyTime.time (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool\n      (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Bool\n        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n          (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n            (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n      (@Computability.Encoding.encode.{0, 0} Rat Bool\n        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n          (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis)))\n      (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n        (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat) Rat Bool Bool Bool.fintype Bool.fintype\n        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n          (Counting.Algorithm.InterpolationMachine.Materialized.Table Rat)\n          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding Rat Rat.instField\n            (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Rat\n          (@PlanarHom.Complexity.numberFieldEncoding Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))\n        (@Counting.Algorithm.InterpolationMachine.Materialized.recover Rat Rat.instField instDecidableEqRat)\n        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer Rat Rat.instField instDecidableEqRat\n          (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.InterpolationMachine.Materialized.Clients.rationalBasis))))"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Clients.Composition.check_affine_equation","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Clients.Composition","kind":"theorem","module":"Counting.Algorithm.FieldArithmetic.Clients.Composition","name":"Counting.Algorithm.FieldArithmetic.Clients.Composition.check_affine_equation","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : DecidableEq K]\n  (p : Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K),\n  Ne p.snd.fst 0 →\n    Iff (Eq (Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare p).snd Bool.true)\n      (Eq (instHSub.hSub p.fst.fst p.fst.snd) (instHMul.hMul p.snd.snd p.snd.fst))","role":"client","source_line":66,"source_path":"projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Composition.lean","source_sha256":"1447cb1fac4a58efc842eb2af967824dcdf6f2fa094de88cc68a560f2b1c4d42","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Composition.lean#L66","type":"∀ {K : Type} [inst : Field.{0} K] [inst_1 : DecidableEq.{1} K]\n  (p : Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n  (hz :\n    @Ne.{1} K (@Prod.fst.{0, 0} K K (@Prod.snd.{0, 0} (Prod.{0, 0} K K) (Prod.{0, 0} K K) p))\n      (@OfNat.ofNat.{0} K (nat_lit 0)\n        (@Zero.toOfNat0.{0} K\n          (@MulZeroClass.toZero.{0} K\n            (@instMulZeroClassOfSemiring.{0} K\n              (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))))))),\n  Iff\n    (@Eq.{1} Bool\n      (@Prod.snd.{0, 0} K Bool\n        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1 p))\n      Bool.true)\n    (@Eq.{1} K\n      (@HSub.hSub.{0, 0, 0} K K K\n        (@instHSub.{0} K\n          (@SubNegMonoid.toSub.{0} K\n            (@AddGroup.toSubNegMonoid.{0} K\n              (@AddGroupWithOne.toAddGroup.{0} K\n                (@Ring.toAddGroupWithOne.{0} K (@DivisionRing.toRing.{0} K (@Field.toDivisionRing.{0} K inst)))))))\n        (@Prod.fst.{0, 0} K K (@Prod.fst.{0, 0} (Prod.{0, 0} K K) (Prod.{0, 0} K K) p))\n        (@Prod.snd.{0, 0} K K (@Prod.fst.{0, 0} (Prod.{0, 0} K K) (Prod.{0, 0} K K) p)))\n      (@HMul.hMul.{0, 0, 0} K K K\n        (@instHMul.{0} K\n          (@Distrib.toMul.{0} K\n            (@instDistribOfSemiring.{0} K\n              (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))))\n        (@Prod.snd.{0, 0} K K (@Prod.snd.{0, 0} (Prod.{0, 0} K K) (Prod.{0, 0} K K) p))\n        (@Prod.fst.{0, 0} K K (@Prod.snd.{0, 0} (Prod.{0, 0} K K) (Prod.{0, 0} K K) p))))"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Clients.Composition.computer","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Clients.Composition","kind":"definition","module":"Counting.Algorithm.FieldArithmetic.Clients.Composition","name":"Counting.Algorithm.FieldArithmetic.Clients.Composition.computer","name_semantics":"actual named kernel declaration","readable_type":"{K : Type} →\n  [inst : Field K] →\n    [inst_1 : DecidableEq K] →\n      [inst_2 : Algebra Rat K] →\n        {dimension : Nat} →\n          (basis : Module.Basis (Fin dimension) Rat K) →\n            Turing.TM2ComputableInPolyTime\n              (Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding basis).encode\n              (Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding basis).encode\n              Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare","role":"client","source_line":36,"source_path":"projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Composition.lean","source_sha256":"1447cb1fac4a58efc842eb2af967824dcdf6f2fa094de88cc68a560f2b1c4d42","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Composition.lean#L36","type":"{K : Type} →\n  [inst : Field.{0} K] →\n    [inst_1 : DecidableEq.{1} K] →\n      [inst_2 :\n          @Algebra.{0, 0} Rat K Rat.commSemiring\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))] →\n        {dimension : Nat} →\n          (basis :\n              @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n                (@Semiring.toAddCommMonoid.{0} K\n                  (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n                (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n                  (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))\n                  inst_2)) →\n            @Turing.TM2ComputableInPolyTime (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n              (Prod.{0, 0} K Bool) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension basis))\n              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension basis))\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Clients.Composition.fp_normalizeAndCompare","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Clients.Composition","kind":"theorem","module":"Counting.Algorithm.FieldArithmetic.Clients.Composition","name":"Counting.Algorithm.FieldArithmetic.Clients.Composition.fp_normalizeAndCompare","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : DecidableEq K] [inst_2 : Algebra Rat K] {dimension : Nat}\n  (basis : Module.Basis (Fin dimension) Rat K),\n  PlanarHom.Complexity.FP (Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding basis)\n    (Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding basis)\n    Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare","role":"client","source_line":24,"source_path":"projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Composition.lean","source_sha256":"1447cb1fac4a58efc842eb2af967824dcdf6f2fa094de88cc68a560f2b1c4d42","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Composition.lean#L24","type":"∀ {K : Type} [inst : Field.{0} K] [inst_1 : DecidableEq.{1} K]\n  [inst_2 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_2)),\n  @PlanarHom.Complexity.FP (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool)\n    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension basis)\n    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension basis)\n    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Clients.Composition","kind":"definition","module":"Counting.Algorithm.FieldArithmetic.Clients.Composition","name":"Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare","name_semantics":"actual named kernel declaration","readable_type":"{K : Type} → [Field K] → [DecidableEq K] → Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K → Prod K Bool","role":"client","source_line":20,"source_path":"projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Composition.lean","source_sha256":"1447cb1fac4a58efc842eb2af967824dcdf6f2fa094de88cc68a560f2b1c4d42","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Composition.lean#L20","specification":"fun {K : Type} [inst : Field.{0} K] [inst_1 : DecidableEq.{1} K]\n    (p : Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) =>\n  have q : K :=\n    @HDiv.hDiv.{0, 0, 0} K K K\n      (@instHDiv.{0} K\n        (@DivInvMonoid.toDiv.{0} K (@DivisionRing.toDivInvMonoid.{0} K (@Field.toDivisionRing.{0} K inst))))\n      (@HSub.hSub.{0, 0, 0} K K K\n        (@instHSub.{0} K\n          (@SubNegMonoid.toSub.{0} K\n            (@AddGroup.toSubNegMonoid.{0} K\n              (@AddGroupWithOne.toAddGroup.{0} K\n                (@Ring.toAddGroupWithOne.{0} K (@DivisionRing.toRing.{0} K (@Field.toDivisionRing.{0} K inst)))))))\n        (@Prod.fst.{0, 0} K K (@Prod.fst.{0, 0} (Prod.{0, 0} K K) (Prod.{0, 0} K K) p))\n        (@Prod.snd.{0, 0} K K (@Prod.fst.{0, 0} (Prod.{0, 0} K K) (Prod.{0, 0} K K) p)))\n      (@Prod.fst.{0, 0} K K (@Prod.snd.{0, 0} (Prod.{0, 0} K K) (Prod.{0, 0} K K) p));\n  @Prod.mk.{0, 0} K Bool q\n    (@Decidable.decide (@Eq.{1} K q (@Prod.snd.{0, 0} K K (@Prod.snd.{0, 0} (Prod.{0, 0} K K) (Prod.{0, 0} K K) p)))\n      (inst_1 q (@Prod.snd.{0, 0} K K (@Prod.snd.{0, 0} (Prod.{0, 0} K K) (Prod.{0, 0} K K) p))))","type":"{K : Type} →\n  [Field.{0} K] →\n    [DecidableEq.{1} K] → (p : Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) → Prod.{0, 0} K Bool"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Clients.Composition.output_length_bound","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Clients.Composition","kind":"theorem","module":"Counting.Algorithm.FieldArithmetic.Clients.Composition","name":"Counting.Algorithm.FieldArithmetic.Clients.Composition.output_length_bound","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : DecidableEq K] [inst_2 : Algebra Rat K] {dimension : Nat}\n  (basis : Module.Basis (Fin dimension) Rat K) (p : Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K),\n  instLENat.le\n    (List.length\n      ((Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding basis).encode\n        (Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare p)))\n    (Polynomial.eval\n      (List.length ((Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding basis).encode p))\n      (Counting.Algorithm.FieldArithmetic.Clients.Composition.outputLengthPolynomial basis))","role":"client","source_line":53,"source_path":"projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Composition.lean","source_sha256":"1447cb1fac4a58efc842eb2af967824dcdf6f2fa094de88cc68a560f2b1c4d42","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Composition.lean#L53","type":"∀ {K : Type} [inst : Field.{0} K] [inst_1 : DecidableEq.{1} K]\n  [inst_2 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_2))\n  (p : Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K),\n  @LE.le.{0} Nat instLENat\n    (@List.length.{0} Bool\n      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension basis)\n        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1 p)))\n    (@Polynomial.eval.{0} Nat Nat.instSemiring\n      (@List.length.{0} Bool\n        (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension basis) p))\n      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputLengthPolynomial K inst inst_1 inst_2 dimension\n        basis))"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Clients.Composition.outputs","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Clients.Composition","kind":"definition","module":"Counting.Algorithm.FieldArithmetic.Clients.Composition","name":"Counting.Algorithm.FieldArithmetic.Clients.Composition.outputs","name_semantics":"actual named kernel declaration","readable_type":"{K : Type} →\n  [inst : Field K] →\n    [inst_1 : DecidableEq K] →\n      [inst_2 : Algebra Rat K] →\n        {dimension : Nat} →\n          (basis : Module.Basis (Fin dimension) Rat K) →\n            (p : Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) →\n              Turing.TM2OutputsInTime (Counting.Algorithm.FieldArithmetic.Clients.Composition.computer basis).tm\n                (List.map\n                  (EquivLike.toFunLike.coe\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.computer basis).inputAlphabet.symm)\n                  ((Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding basis).encode p))\n                (Option.some\n                  (List.map\n                    (EquivLike.toFunLike.coe\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.computer basis).outputAlphabet.symm)\n                    ((Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding basis).encode\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare p))))\n                (Polynomial.eval\n                  (List.length ((Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding basis).encode p))\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.computer basis).time)","role":"client","source_line":40,"source_path":"projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Composition.lean","source_sha256":"1447cb1fac4a58efc842eb2af967824dcdf6f2fa094de88cc68a560f2b1c4d42","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Composition.lean#L40","type":"{K : Type} →\n  [inst : Field.{0} K] →\n    [inst_1 : DecidableEq.{1} K] →\n      [inst_2 :\n          @Algebra.{0, 0} Rat K Rat.commSemiring\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))] →\n        {dimension : Nat} →\n          (basis :\n              @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n                (@Semiring.toAddCommMonoid.{0} K\n                  (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n                (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n                  (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))\n                  inst_2)) →\n            (p : Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) →\n              Turing.TM2OutputsInTime\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                        basis))\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                      basis)))\n                (@List.map.{0, 0} Bool\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                            basis))\n                        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                            dimension basis))\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                          basis)))\n                    (Turing.FinTM2.k₀\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                          Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                              dimension basis))\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                            dimension basis)))))\n                  (@DFunLike.coe.{1, 1, 1}\n                    (Equiv.{1, 1} Bool\n                      (Turing.FinTM2.Γ\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                            Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                dimension basis))\n                            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                dimension basis))\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                              dimension basis)))\n                        (Turing.FinTM2.k₀\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                              Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                  dimension basis))\n                              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                  dimension basis))\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst\n                                inst_1)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                                dimension basis))))))\n                    Bool\n                    (fun (x : Bool) =>\n                      Turing.FinTM2.Γ\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                            Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                dimension basis))\n                            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                dimension basis))\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                              dimension basis)))\n                        (Turing.FinTM2.k₀\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                              Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                  dimension basis))\n                              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                  dimension basis))\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst\n                                inst_1)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                                dimension basis)))))\n                    (@EquivLike.toFunLike.{1, 1, 1}\n                      (Equiv.{1, 1} Bool\n                        (Turing.FinTM2.Γ\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                              Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                  dimension basis))\n                              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                  dimension basis))\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst\n                                inst_1)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                                dimension basis)))\n                          (Turing.FinTM2.k₀\n                            (@Turing.TM2ComputableAux.tm Bool Bool\n                              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool)\n                                Bool Bool\n                                (@PlanarHom.Complexity.BitEncoding.encode\n                                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                    dimension basis))\n                                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                    dimension basis))\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst\n                                  inst_1)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                                  dimension basis))))))\n                      Bool\n                      (Turing.FinTM2.Γ\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                            Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                dimension basis))\n                            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                dimension basis))\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                              dimension basis)))\n                        (Turing.FinTM2.k₀\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                              Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                  dimension basis))\n                              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                  dimension basis))\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst\n                                inst_1)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                                dimension basis)))))\n                      (@Equiv.instEquivLike.{1, 1} Bool\n                        (Turing.FinTM2.Γ\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                              Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                  dimension basis))\n                              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                  dimension basis))\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst\n                                inst_1)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                                dimension basis)))\n                          (Turing.FinTM2.k₀\n                            (@Turing.TM2ComputableAux.tm Bool Bool\n                              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool)\n                                Bool Bool\n                                (@PlanarHom.Complexity.BitEncoding.encode\n                                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                    dimension basis))\n                                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                    dimension basis))\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst\n                                  inst_1)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                                  dimension basis)))))))\n                    (@Equiv.symm.{1, 1}\n                      (Turing.FinTM2.Γ\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                            Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                dimension basis))\n                            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                dimension basis))\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                              dimension basis)))\n                        (Turing.FinTM2.k₀\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                              Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                  dimension basis))\n                              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                  dimension basis))\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst\n                                inst_1)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                                dimension basis)))))\n                      Bool\n                      (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                          Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                              dimension basis))\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                            dimension basis)))))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                      basis)\n                    p))\n                (@Option.some.{0}\n                  (List.{0}\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                          Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                              dimension basis))\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                            dimension basis)))\n                      (Turing.FinTM2.k₁\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                            Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                dimension basis))\n                            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                dimension basis))\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                              dimension basis))))))\n                  (@List.map.{0, 0} Bool\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                          Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                              dimension basis))\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                            dimension basis)))\n                      (Turing.FinTM2.k₁\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                            Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                dimension basis))\n                            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                dimension basis))\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                              dimension basis)))))\n                    (@DFunLike.coe.{1, 1, 1}\n                      (Equiv.{1, 1} Bool\n                        (Turing.FinTM2.Γ\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                              Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                  dimension basis))\n                              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                  dimension basis))\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst\n                                inst_1)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                                dimension basis)))\n                          (Turing.FinTM2.k₁\n                            (@Turing.TM2ComputableAux.tm Bool Bool\n                              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool)\n                                Bool Bool\n                                (@PlanarHom.Complexity.BitEncoding.encode\n                                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                    dimension basis))\n                                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                    dimension basis))\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst\n                                  inst_1)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                                  dimension basis))))))\n                      Bool\n                      (fun (x : Bool) =>\n                        Turing.FinTM2.Γ\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                              Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                  dimension basis))\n                              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                  dimension basis))\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst\n                                inst_1)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                                dimension basis)))\n                          (Turing.FinTM2.k₁\n                            (@Turing.TM2ComputableAux.tm Bool Bool\n                              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool)\n                                Bool Bool\n                                (@PlanarHom.Complexity.BitEncoding.encode\n                                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                    dimension basis))\n                                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                    dimension basis))\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst\n                                  inst_1)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                                  dimension basis)))))\n                      (@EquivLike.toFunLike.{1, 1, 1}\n                        (Equiv.{1, 1} Bool\n                          (Turing.FinTM2.Γ\n                            (@Turing.TM2ComputableAux.tm Bool Bool\n                              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool)\n                                Bool Bool\n                                (@PlanarHom.Complexity.BitEncoding.encode\n                                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                    dimension basis))\n                                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                    dimension basis))\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst\n                                  inst_1)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                                  dimension basis)))\n                            (Turing.FinTM2.k₁\n                              (@Turing.TM2ComputableAux.tm Bool Bool\n                                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool)\n                                  Bool Bool\n                                  (@PlanarHom.Complexity.BitEncoding.encode\n                                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                      dimension basis))\n                                  (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst\n                                      inst_2 dimension basis))\n                                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst\n                                    inst_1)\n                                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                                    dimension basis))))))\n                        Bool\n                        (Turing.FinTM2.Γ\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                              Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                  dimension basis))\n                              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                  dimension basis))\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst\n                                inst_1)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                                dimension basis)))\n                          (Turing.FinTM2.k₁\n                            (@Turing.TM2ComputableAux.tm Bool Bool\n                              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool)\n                                Bool Bool\n                                (@PlanarHom.Complexity.BitEncoding.encode\n                                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                    dimension basis))\n                                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                    dimension basis))\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst\n                                  inst_1)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                                  dimension basis)))))\n                        (@Equiv.instEquivLike.{1, 1} Bool\n                          (Turing.FinTM2.Γ\n                            (@Turing.TM2ComputableAux.tm Bool Bool\n                              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool)\n                                Bool Bool\n                                (@PlanarHom.Complexity.BitEncoding.encode\n                                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                    dimension basis))\n                                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                    dimension basis))\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst\n                                  inst_1)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                                  dimension basis)))\n                            (Turing.FinTM2.k₁\n                              (@Turing.TM2ComputableAux.tm Bool Bool\n                                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool)\n                                  Bool Bool\n                                  (@PlanarHom.Complexity.BitEncoding.encode\n                                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                      dimension basis))\n                                  (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst\n                                      inst_2 dimension basis))\n                                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst\n                                    inst_1)\n                                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                                    dimension basis)))))))\n                      (@Equiv.symm.{1, 1}\n                        (Turing.FinTM2.Γ\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                              Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                  dimension basis))\n                              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                  dimension basis))\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst\n                                inst_1)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                                dimension basis)))\n                          (Turing.FinTM2.k₁\n                            (@Turing.TM2ComputableAux.tm Bool Bool\n                              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool)\n                                Bool Bool\n                                (@PlanarHom.Complexity.BitEncoding.encode\n                                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                    dimension basis))\n                                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                    dimension basis))\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst\n                                  inst_1)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                                  dimension basis)))))\n                        Bool\n                        (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                            Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                dimension basis))\n                            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                dimension basis))\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                              dimension basis)))))\n                    (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                        basis)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1 p))))\n                (@Polynomial.eval.{0} Nat Nat.instSemiring\n                  (@List.length.{0} Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                        basis)\n                      p))\n                  (@Turing.TM2ComputableInPolyTime.time (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                    (Prod.{0, 0} K Bool) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                        basis))\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                      basis)))"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Clients.Composition.steps_bound","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Clients.Composition","kind":"theorem","module":"Counting.Algorithm.FieldArithmetic.Clients.Composition","name":"Counting.Algorithm.FieldArithmetic.Clients.Composition.steps_bound","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : DecidableEq K] [inst_2 : Algebra Rat K] {dimension : Nat}\n  (basis : Module.Basis (Fin dimension) Rat K) (p : Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K),\n  instLENat.le (Counting.Algorithm.FieldArithmetic.Clients.Composition.outputs basis p).steps\n    (Polynomial.eval\n      (List.length ((Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding basis).encode p))\n      (Counting.Algorithm.FieldArithmetic.Clients.Composition.computer basis).time)","role":"client","source_line":47,"source_path":"projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Composition.lean","source_sha256":"1447cb1fac4a58efc842eb2af967824dcdf6f2fa094de88cc68a560f2b1c4d42","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Composition.lean#L47","type":"∀ {K : Type} [inst : Field.{0} K] [inst_1 : DecidableEq.{1} K]\n  [inst_2 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_2))\n  (p : Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K),\n  @LE.le.{0} Nat instLENat\n    (@StateTransition.EvalsTo.steps.{0}\n      (Turing.FinTM2.Cfg\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension basis))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension basis))\n            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension basis))))\n      (Turing.FinTM2.step\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension basis))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension basis))\n            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension basis))))\n      (Turing.initList\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension basis))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension basis))\n            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension basis)))\n        (@List.map.{0, 0} Bool\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension basis))\n                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                    basis))\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                  basis)))\n            (Turing.FinTM2.k₀\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                      basis))\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                    basis)))))\n          (@DFunLike.coe.{1, 1, 1}\n            (Equiv.{1, 1} Bool\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                        basis))\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                      basis)))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                          basis))\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                        basis))))))\n            Bool\n            (fun (x : Bool) =>\n              Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                        basis))\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                      basis)))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                          basis))\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                        basis)))))\n            (@EquivLike.toFunLike.{1, 1, 1}\n              (Equiv.{1, 1} Bool\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                          basis))\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                        basis)))\n                  (Turing.FinTM2.k₀\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                            basis))\n                        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                            dimension basis))\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                          basis))))))\n              Bool\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                        basis))\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                      basis)))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                          basis))\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                        basis)))))\n              (@Equiv.instEquivLike.{1, 1} Bool\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                          basis))\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                        basis)))\n                  (Turing.FinTM2.k₀\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                            basis))\n                        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                            dimension basis))\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                          basis)))))))\n            (@Equiv.symm.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                        basis))\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                      basis)))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                          basis))\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                        basis)))))\n              Bool\n              (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                      basis))\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                    basis)))))\n          (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension basis) p)))\n      (@Option.map.{0, 0}\n        (List.{0}\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension basis))\n                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                    basis))\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                  basis)))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                      basis))\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                    basis))))))\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension basis))\n              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension basis))\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension basis))))\n        (Turing.haltList\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension basis))\n              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension basis))\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension basis))))\n        (@Option.some.{0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                      basis))\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                    basis)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                        basis))\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                      basis))))))\n          (@List.map.{0, 0} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                      basis))\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                    basis)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                        basis))\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                      basis)))))\n            (@DFunLike.coe.{1, 1, 1}\n              (Equiv.{1, 1} Bool\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                          basis))\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                        basis)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                            basis))\n                        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                            dimension basis))\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                          basis))))))\n              Bool\n              (fun (x : Bool) =>\n                Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                          basis))\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                        basis)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                            basis))\n                        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                            dimension basis))\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                          basis)))))\n              (@EquivLike.toFunLike.{1, 1, 1}\n                (Equiv.{1, 1} Bool\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                            basis))\n                        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                            dimension basis))\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                          basis)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                          Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                              dimension basis))\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                            dimension basis))))))\n                Bool\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                          basis))\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                        basis)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                            basis))\n                        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                            dimension basis))\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                          basis)))))\n                (@Equiv.instEquivLike.{1, 1} Bool\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                            basis))\n                        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                            dimension basis))\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                          basis)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                          Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                              dimension basis))\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                            dimension basis)))))))\n              (@Equiv.symm.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                          basis))\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                        basis)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                            basis))\n                        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                            dimension basis))\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                          basis)))))\n                Bool\n                (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                        basis))\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                      basis)))))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension basis)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1 p)))))\n      (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension basis))\n              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension basis))\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension basis))))\n        (Turing.FinTM2.step\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension basis))\n              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension basis))\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension basis))))\n        (Turing.initList\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension basis))\n              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension basis))\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension basis)))\n          (@List.map.{0, 0} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                      basis))\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                    basis)))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                        basis))\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                      basis)))))\n            (@DFunLike.coe.{1, 1, 1}\n              (Equiv.{1, 1} Bool\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                          basis))\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                        basis)))\n                  (Turing.FinTM2.k₀\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                            basis))\n                        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                            dimension basis))\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                          basis))))))\n              Bool\n              (fun (x : Bool) =>\n                Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                          basis))\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                        basis)))\n                  (Turing.FinTM2.k₀\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                            basis))\n                        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                            dimension basis))\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                          basis)))))\n              (@EquivLike.toFunLike.{1, 1, 1}\n                (Equiv.{1, 1} Bool\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                            basis))\n                        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                            dimension basis))\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                          basis)))\n                    (Turing.FinTM2.k₀\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                          Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                              dimension basis))\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                            dimension basis))))))\n                Bool\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                          basis))\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                        basis)))\n                  (Turing.FinTM2.k₀\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                            basis))\n                        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                            dimension basis))\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                          basis)))))\n                (@Equiv.instEquivLike.{1, 1} Bool\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                            basis))\n                        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                            dimension basis))\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                          basis)))\n                    (Turing.FinTM2.k₀\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                          Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                              dimension basis))\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                            dimension basis)))))))\n              (@Equiv.symm.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                          basis))\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                        basis)))\n                  (Turing.FinTM2.k₀\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                            basis))\n                        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                            dimension basis))\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                          basis)))))\n                Bool\n                (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                        basis))\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                      basis)))))\n            (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension basis) p)))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                      basis))\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                    basis)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                        basis))\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                      basis))))))\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension basis))\n                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                    basis))\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                  basis))))\n          (Turing.haltList\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension basis))\n                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                    basis))\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                  basis))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                        basis))\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                      basis)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                          basis))\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                        basis))))))\n            (@List.map.{0, 0} Bool\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                        basis))\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                      basis)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                          basis))\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                        basis)))))\n              (@DFunLike.coe.{1, 1, 1}\n                (Equiv.{1, 1} Bool\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                            basis))\n                        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                            dimension basis))\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                          basis)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                          Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                              dimension basis))\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                            dimension basis))))))\n                Bool\n                (fun (x : Bool) =>\n                  Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                            basis))\n                        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                            dimension basis))\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                          basis)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                          Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                              dimension basis))\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                            dimension basis)))))\n                (@EquivLike.toFunLike.{1, 1, 1}\n                  (Equiv.{1, 1} Bool\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                          Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                              dimension basis))\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                            dimension basis)))\n                      (Turing.FinTM2.k₁\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                            Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                dimension basis))\n                            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                dimension basis))\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                              dimension basis))))))\n                  Bool\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                            basis))\n                        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                            dimension basis))\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                          basis)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                          Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                              dimension basis))\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                            dimension basis)))))\n                  (@Equiv.instEquivLike.{1, 1} Bool\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                          Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                              dimension basis))\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                            dimension basis)))\n                      (Turing.FinTM2.k₁\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                            Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                                dimension basis))\n                            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                                dimension basis))\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                              dimension basis)))))))\n                (@Equiv.symm.{1, 1}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                            basis))\n                        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                            dimension basis))\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                          basis)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool\n                          Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2\n                              dimension basis))\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2\n                            dimension basis)))))\n                  Bool\n                  (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K) (Prod.{0, 0} K Bool) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension\n                          basis))\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension\n                        basis)))))\n              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension basis)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1 p)))))\n        (@Polynomial.eval.{0} Nat Nat.instSemiring\n          (@List.length.{0} Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension basis) p))\n          (@Turing.TM2ComputableInPolyTime.time (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n            (Prod.{0, 0} K Bool) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension basis))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension basis))\n            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension basis)))\n        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputs K inst inst_1 inst_2 dimension basis p)))\n    (@Polynomial.eval.{0} Nat Nat.instSemiring\n      (@List.length.{0} Bool\n        (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension basis) p))\n      (@Turing.TM2ComputableInPolyTime.time (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n        (Prod.{0, 0} K Bool) Bool Bool\n        (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input K)\n          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding K inst inst_2 dimension basis))\n        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K Bool)\n          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding K inst inst_2 dimension basis))\n        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare K inst inst_1)\n        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer K inst inst_1 inst_2 dimension basis)))"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Clients.Composition.zero_divisor_outputs","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Clients.Composition","kind":"definition","module":"Counting.Algorithm.FieldArithmetic.Clients.Composition","name":"Counting.Algorithm.FieldArithmetic.Clients.Composition.zero_divisor_outputs","name_semantics":"actual named kernel declaration","readable_type":"Turing.TM2OutputsInTime\n  (Counting.Algorithm.FieldArithmetic.Clients.Composition.computer\n      Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis).tm\n  (List.map\n    (EquivLike.toFunLike.coe\n      (Counting.Algorithm.FieldArithmetic.Clients.Composition.computer\n            Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis).inputAlphabet.symm)\n    ((Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding\n          Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis).encode\n      { fst := { fst := 7, snd := 3 }, snd := { fst := 0, snd := 1 } }))\n  (Option.some\n    (List.map\n      (EquivLike.toFunLike.coe\n        (Counting.Algorithm.FieldArithmetic.Clients.Composition.computer\n              Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis).outputAlphabet.symm)\n      ((Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding\n            Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis).encode\n        { fst := 0, snd := Bool.false })))\n  (Polynomial.eval\n    (List.length\n      ((Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding\n            Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis).encode\n        { fst := { fst := 7, snd := 3 }, snd := { fst := 0, snd := 1 } }))\n    (Counting.Algorithm.FieldArithmetic.Clients.Composition.computer\n        Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis).time)","role":"client","source_line":97,"source_path":"projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Composition.lean","source_sha256":"1447cb1fac4a58efc842eb2af967824dcdf6f2fa094de88cc68a560f2b1c4d42","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Composition.lean#L97","type":"Turing.TM2OutputsInTime\n  (@Turing.TM2ComputableAux.tm Bool Bool\n    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n      (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n          (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n          (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField instDecidableEqRat)\n      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n        (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))\n  (@List.map.{0, 0} Bool\n    (Turing.FinTM2.Γ\n      (@Turing.TM2ComputableAux.tm Bool Bool\n        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n          (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n          (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n              (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n              (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n            instDecidableEqRat)\n          (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n            (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))\n      (Turing.FinTM2.k₀\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n              instDecidableEqRat)\n            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n              (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))))\n    (@DFunLike.coe.{1, 1, 1}\n      (Equiv.{1, 1} Bool\n        (Turing.FinTM2.Γ\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                instDecidableEqRat)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))\n          (Turing.FinTM2.k₀\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                  instDecidableEqRat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))))))\n      Bool\n      (fun (x : Bool) =>\n        Turing.FinTM2.Γ\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                instDecidableEqRat)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))\n          (Turing.FinTM2.k₀\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                  instDecidableEqRat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))))\n      (@EquivLike.toFunLike.{1, 1, 1}\n        (Equiv.{1, 1} Bool\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                  instDecidableEqRat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))\n            (Turing.FinTM2.k₀\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                  (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                    instDecidableEqRat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))))))\n        Bool\n        (Turing.FinTM2.Γ\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                instDecidableEqRat)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))\n          (Turing.FinTM2.k₀\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                  instDecidableEqRat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))))\n        (@Equiv.instEquivLike.{1, 1} Bool\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                  instDecidableEqRat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))\n            (Turing.FinTM2.k₀\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                  (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                    instDecidableEqRat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))))))\n      (@Equiv.symm.{1, 1}\n        (Turing.FinTM2.Γ\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                instDecidableEqRat)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))\n          (Turing.FinTM2.k₀\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                  instDecidableEqRat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))))\n        Bool\n        (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n              instDecidableEqRat)\n            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n              (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))))\n    (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n        (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)\n      (@Prod.mk.{0, 0} (Prod.{0, 0} Rat Rat) (Prod.{0, 0} Rat Rat)\n        (@Prod.mk.{0, 0} Rat Rat (@OfNat.ofNat.{0} Rat (nat_lit 7) (@Rat.instOfNat (nat_lit 7)))\n          (@OfNat.ofNat.{0} Rat (nat_lit 3) (@Rat.instOfNat (nat_lit 3))))\n        (@Prod.mk.{0, 0} Rat Rat (@OfNat.ofNat.{0} Rat (nat_lit 0) (@Rat.instOfNat (nat_lit 0)))\n          (@OfNat.ofNat.{0} Rat (nat_lit 1) (@Rat.instOfNat (nat_lit 1)))))))\n  (@Option.some.{0}\n    (List.{0}\n      (Turing.FinTM2.Γ\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n              instDecidableEqRat)\n            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n              (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))\n        (Turing.FinTM2.k₁\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                instDecidableEqRat)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))))))\n    (@List.map.{0, 0} Bool\n      (Turing.FinTM2.Γ\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n              instDecidableEqRat)\n            (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n              (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))\n        (Turing.FinTM2.k₁\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                instDecidableEqRat)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))))\n      (@DFunLike.coe.{1, 1, 1}\n        (Equiv.{1, 1} Bool\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                  instDecidableEqRat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                  (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                    instDecidableEqRat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))))))\n        Bool\n        (fun (x : Bool) =>\n          Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                  instDecidableEqRat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                  (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                    instDecidableEqRat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))))\n        (@EquivLike.toFunLike.{1, 1, 1}\n          (Equiv.{1, 1} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                  (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                    instDecidableEqRat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                    (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                      instDecidableEqRat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField\n                      instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))))))\n          Bool\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                  instDecidableEqRat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                  (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                    instDecidableEqRat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))))\n          (@Equiv.instEquivLike.{1, 1} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                  (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                    instDecidableEqRat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                    (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                      instDecidableEqRat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField\n                      instDecidableEqRat (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))))))\n        (@Equiv.symm.{1, 1}\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                  instDecidableEqRat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                  (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                    instDecidableEqRat)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))))\n          Bool\n          (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat) (Prod.{0, 0} Rat Bool) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField\n                instDecidableEqRat)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))))\n      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n          (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)\n        (@Prod.mk.{0, 0} Rat Bool (@OfNat.ofNat.{0} Rat (nat_lit 0) (@Rat.instOfNat (nat_lit 0))) Bool.false))))\n  (@Polynomial.eval.{0} Nat Nat.instSemiring\n    (@List.length.{0} Bool\n      (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n          (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)\n        (@Prod.mk.{0, 0} (Prod.{0, 0} Rat Rat) (Prod.{0, 0} Rat Rat)\n          (@Prod.mk.{0, 0} Rat Rat (@OfNat.ofNat.{0} Rat (nat_lit 7) (@Rat.instOfNat (nat_lit 7)))\n            (@OfNat.ofNat.{0} Rat (nat_lit 3) (@Rat.instOfNat (nat_lit 3))))\n          (@Prod.mk.{0, 0} Rat Rat (@OfNat.ofNat.{0} Rat (nat_lit 0) (@Rat.instOfNat (nat_lit 0)))\n            (@OfNat.ofNat.{0} Rat (nat_lit 1) (@Rat.instOfNat (nat_lit 1)))))))\n    (@Turing.TM2ComputableInPolyTime.time (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n      (Prod.{0, 0} Rat Bool) Bool Bool\n      (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.FieldArithmetic.Clients.Composition.Input Rat)\n        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.inputEncoding Rat Rat.instField\n          (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} Rat Bool)\n        (@Counting.Algorithm.FieldArithmetic.Clients.Composition.outputEncoding Rat Rat.instField\n          (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis))\n      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.normalizeAndCompare Rat Rat.instField instDecidableEqRat)\n      (@Counting.Algorithm.FieldArithmetic.Clients.Composition.computer Rat Rat.instField instDecidableEqRat\n        (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Algorithm.FieldArithmetic.Clients.Composition.rationalBasis)))"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Clients.HeightBounds.normalized_difference_bound","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Clients.HeightBounds","kind":"theorem","module":"Counting.Algorithm.FieldArithmetic.Clients.HeightBounds","name":"Counting.Algorithm.FieldArithmetic.Clients.HeightBounds.normalized_difference_bound","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {dimension : Nat} {basis : Module.Basis (Fin dimension) Rat K}\n  (data : PlanarHom.IntegerCoordinateBounds.ClearedCoordinates basis fun k => Module.Basis.instFunLike.coe basis k)\n  {c H N : Nat},\n  instLENat.le dimension c →\n    instLENat.le (PlanarHom.FieldCoordinateCertificates.Certificate.heightConstant data) (instHPow.hPow 2 H) →\n      ∀ (x y divisor : K),\n        instLENat.le (List.length ((PlanarHom.Complexity.numberFieldEncoding basis).encode x)) N →\n          instLENat.le (List.length ((PlanarHom.Complexity.numberFieldEncoding basis).encode y)) N →\n            instLENat.le (List.length ((PlanarHom.Complexity.numberFieldEncoding basis).encode divisor)) N →\n              instLENat.le\n                (List.length\n                  ((PlanarHom.Complexity.numberFieldEncoding basis).encode (instHDiv.hDiv (instHSub.hSub x y) divisor)))\n                (Polynomial.eval\n                  (instHAdd.hAdd\n                    (Polynomial.eval (instHAdd.hAdd N H) (PlanarHom.UniformFieldHeights.operationPolynomial c)) H)\n                  (PlanarHom.UniformFieldHeights.operationPolynomial c))","role":"client","source_line":11,"source_path":"projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/HeightBounds.lean","source_sha256":"0109ab63f792cb003a278d75e1d4062a59bf532a8c83385c23559ef98a06f6e7","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/HeightBounds.lean#L11","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  {basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)}\n  (data :\n    @PlanarHom.IntegerCoordinateBounds.ClearedCoordinates.{0, 0} K inst inst_1 dimension basis (Fin dimension)\n      fun (k : Fin dimension) =>\n      @DFunLike.coe.{1, 1, 1}\n        (@Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n          (@Semiring.toAddCommMonoid.{0} K\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n          (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1))\n        (Fin dimension) (fun (x : Fin dimension) => K)\n        (@Module.Basis.instFunLike.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n          (@Semiring.toAddCommMonoid.{0} K\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n          (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1))\n        basis k)\n  {c H N : Nat} (hd : @LE.le.{0} Nat instLENat dimension c)\n  (hdata :\n    @LE.le.{0} Nat instLENat\n      (@PlanarHom.FieldCoordinateCertificates.Certificate.heightConstant K inst inst_1 dimension basis data)\n      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) H))\n  (x y divisor : K)\n  (hx :\n    @LE.le.{0} Nat instLENat\n      (@List.length.{0} Bool\n        (@PlanarHom.Complexity.BitEncoding.encode K\n          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis) x))\n      N)\n  (hy :\n    @LE.le.{0} Nat instLENat\n      (@List.length.{0} Bool\n        (@PlanarHom.Complexity.BitEncoding.encode K\n          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis) y))\n      N)\n  (hz :\n    @LE.le.{0} Nat instLENat\n      (@List.length.{0} Bool\n        (@PlanarHom.Complexity.BitEncoding.encode K\n          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis) divisor))\n      N),\n  @LE.le.{0} Nat instLENat\n    (@List.length.{0} Bool\n      (@PlanarHom.Complexity.BitEncoding.encode K\n        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n        (@HDiv.hDiv.{0, 0, 0} K K K\n          (@instHDiv.{0} K\n            (@DivInvMonoid.toDiv.{0} K (@DivisionRing.toDivInvMonoid.{0} K (@Field.toDivisionRing.{0} K inst))))\n          (@HSub.hSub.{0, 0, 0} K K K\n            (@instHSub.{0} K\n              (@SubNegMonoid.toSub.{0} K\n                (@AddGroup.toSubNegMonoid.{0} K\n                  (@AddGroupWithOne.toAddGroup.{0} K\n                    (@Ring.toAddGroupWithOne.{0} K (@DivisionRing.toRing.{0} K (@Field.toDivisionRing.{0} K inst)))))))\n            x y)\n          divisor)))\n    (@Polynomial.eval.{0} Nat Nat.instSemiring\n      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n        (@Polynomial.eval.{0} Nat Nat.instSemiring (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) N H)\n          (PlanarHom.UniformFieldHeights.operationPolynomial c))\n        H)\n      (PlanarHom.UniformFieldHeights.operationPolynomial c))"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation","kind":"definition","module":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation","name":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer","name_semantics":"actual named kernel declaration","readable_type":"{K : Type} →\n  [inst : Field K] →\n    [inst_1 : DecidableEq K] →\n      [inst_2 : Algebra Rat K] →\n        {dimension : Nat} →\n          (basis : Module.Basis (Fin dimension) Rat K) →\n            Holant.Complexity.PolyTime\n              (Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding basis).toFinEncoding\n              (PlanarHom.Complexity.numberFieldEncoding basis).toFinEncoding\n              Counting.Algorithm.InterpolationMachine.Materialized.recover","role":"client","source_line":116,"source_path":"projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Interpolation.lean","source_sha256":"e456ce507e1153e83ef7b73299a9ae4eaa4dd2c3d027a8d8ff876adcf663c99c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Interpolation.lean#L116","type":"{K : Type} →\n  [inst : Field.{0} K] →\n    [inst_1 : DecidableEq.{1} K] →\n      [inst_2 :\n          @Algebra.{0, 0} Rat K Rat.commSemiring\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))] →\n        {dimension : Nat} →\n          (basis :\n              @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n                (@Semiring.toAddCommMonoid.{0} K\n                  (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n                (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n                  (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))\n                  inst_2)) →\n            @Holant.Complexity.PolyTime (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n              Bool.fintype Bool.fintype\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer_steps","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation","kind":"theorem","module":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation","name":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer_steps","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : DecidableEq K] [inst_2 : Algebra Rat K] {dimension : Nat}\n  (basis : Module.Basis (Fin dimension) Rat K) (table : Counting.Algorithm.InterpolationMachine.Materialized.Table K),\n  Eq ((Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer basis).outputsFun table).steps\n    ((Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer basis).outputsFun table).steps","role":"client","source_line":128,"source_path":"projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Interpolation.lean","source_sha256":"e456ce507e1153e83ef7b73299a9ae4eaa4dd2c3d027a8d8ff876adcf663c99c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Interpolation.lean#L128","type":"∀ {K : Type} [inst : Field.{0} K] [inst_1 : DecidableEq.{1} K]\n  [inst_2 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_2))\n  (table : Counting.Algorithm.InterpolationMachine.Materialized.Table K),\n  @Eq.{1} Nat\n    (@StateTransition.EvalsTo.steps.{0}\n      (Turing.FinTM2.Cfg\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n            (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                  basis)))\n            (@Computability.Encoding.encode.{0, 0} K Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                basis)))))\n      (Turing.FinTM2.step\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n            (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                  basis)))\n            (@Computability.Encoding.encode.{0, 0} K Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                basis)))))\n      (Turing.initList\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n            (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                  basis)))\n            (@Computability.Encoding.encode.{0, 0} K Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                basis))))\n        (@List.map.{0, 0} Bool\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis)))\n                (@Computability.Encoding.encode.{0, 0} K Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                    basis))))\n            (Turing.FinTM2.k₀\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                      basis))))))\n          (@Equiv.invFun.{1, 1}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                      basis))))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                        basis))))))\n            Bool\n            (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis)))\n                (@Computability.Encoding.encode.{0, 0} K Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                    basis)))))\n          (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n            table)))\n      (@Option.map.{0, 0}\n        (List.{0}\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis)))\n                (@Computability.Encoding.encode.{0, 0} K Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                    basis))))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                      basis)))))))\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis)))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                  basis)))))\n        (Turing.haltList\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis)))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                  basis)))))\n        (@Option.some.{0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                      basis))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                        basis)))))))\n          (@List.map.{0, 0} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                      basis))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                        basis))))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                        basis))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                        Bool.fintype\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis))\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                          dimension basis))))))\n              Bool\n              (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                      basis)))))\n            (@Computability.Encoding.encode.{0, 0} K Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1 table)))))\n      (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis)))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                  basis)))))\n        (Turing.FinTM2.step\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis)))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                  basis)))))\n        (Turing.initList\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis)))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                  basis))))\n          (@List.map.{0, 0} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                      basis))))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                        basis))))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                        basis))))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                        Bool.fintype\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis))\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                          dimension basis))))))\n              Bool\n              (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                      basis)))))\n            (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n              table)))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                      basis))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                        basis)))))))\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis)))\n                (@Computability.Encoding.encode.{0, 0} K Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                    basis)))))\n          (Turing.haltList\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis)))\n                (@Computability.Encoding.encode.{0, 0} K Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                    basis)))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                        basis))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                        Bool.fintype\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis))\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                          dimension basis)))))))\n            (@List.map.{0, 0} Bool\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                        basis))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                        Bool.fintype\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis))\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                          dimension basis))))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                        Bool.fintype\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis))\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                          dimension basis))))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                              dimension basis)))\n                        (@Computability.Encoding.encode.{0, 0} K Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                          Bool.fintype\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                            dimension basis))))))\n                Bool\n                (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                        basis)))))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1 table)))))\n        (@Polynomial.eval.{0} Nat Nat.instSemiring\n          (@List.length.{0} Bool\n            (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n              table))\n          (@Turing.TM2ComputableInPolyTime.time (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool\n            Bool\n            (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                  basis)))\n            (@Computability.Encoding.encode.{0, 0} K Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                basis))))\n        (@Turing.TM2ComputableInPolyTime.outputsFun (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K\n          Bool Bool\n          (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis)))\n          (@Computability.Encoding.encode.{0, 0} K Bool\n            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension basis))\n          table)))\n    (@StateTransition.EvalsTo.steps.{0}\n      (Turing.FinTM2.Cfg\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n            (@PlanarHom.Complexity.BitEncoding.encode K\n              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2 dimension\n              basis))))\n      (Turing.FinTM2.step\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n            (@PlanarHom.Complexity.BitEncoding.encode K\n              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2 dimension\n              basis))))\n      (Turing.initList\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n            (@PlanarHom.Complexity.BitEncoding.encode K\n              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2 dimension\n              basis)))\n        (@List.map.{0, 0} Bool\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                (@PlanarHom.Complexity.BitEncoding.encode K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2 dimension\n                  basis)))\n            (Turing.FinTM2.k₀\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.encode K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                    dimension basis)))))\n          (@Equiv.invFun.{1, 1}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.encode K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                    dimension basis)))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                      dimension basis)))))\n            Bool\n            (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                (@PlanarHom.Complexity.BitEncoding.encode K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2 dimension\n                  basis))))\n          (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis)\n            table)))\n      (@Option.map.{0, 0}\n        (List.{0}\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                (@PlanarHom.Complexity.BitEncoding.encode K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2 dimension\n                  basis)))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.encode K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                    dimension basis))))))\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n              (@PlanarHom.Complexity.BitEncoding.encode K\n                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2 dimension\n                basis))))\n        (Turing.haltList\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n              (@PlanarHom.Complexity.BitEncoding.encode K\n                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2 dimension\n                basis))))\n        (@Option.some.{0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.encode K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                    dimension basis)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                      dimension basis))))))\n          (@List.map.{0, 0} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.encode K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                    dimension basis)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                      dimension basis)))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                      dimension basis)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                        dimension basis)))))\n              Bool\n              (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.encode K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                    dimension basis))))\n            (@PlanarHom.Complexity.BitEncoding.encode K\n              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1 table)))))\n      (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n              (@PlanarHom.Complexity.BitEncoding.encode K\n                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2 dimension\n                basis))))\n        (Turing.FinTM2.step\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n              (@PlanarHom.Complexity.BitEncoding.encode K\n                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2 dimension\n                basis))))\n        (Turing.initList\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n              (@PlanarHom.Complexity.BitEncoding.encode K\n                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2 dimension\n                basis)))\n          (@List.map.{0, 0} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.encode K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                    dimension basis)))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                      dimension basis)))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                      dimension basis)))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                        dimension basis)))))\n              Bool\n              (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.encode K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                    dimension basis))))\n            (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis)\n              table)))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.encode K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                    dimension basis)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                      dimension basis))))))\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                (@PlanarHom.Complexity.BitEncoding.encode K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2 dimension\n                  basis))))\n          (Turing.haltList\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                (@PlanarHom.Complexity.BitEncoding.encode K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2 dimension\n                  basis))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                      dimension basis)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                        dimension basis))))))\n            (@List.map.{0, 0} Bool\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                      dimension basis)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                        dimension basis)))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.encode K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                        dimension basis)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis))\n                        (@PlanarHom.Complexity.BitEncoding.encode K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                          dimension basis)))))\n                Bool\n                (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.encode K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2\n                      dimension basis))))\n              (@PlanarHom.Complexity.BitEncoding.encode K\n                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1 table)))))\n        (@Polynomial.eval.{0} Nat Nat.instSemiring\n          (@List.length.{0} Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis)\n              table))\n          (@Turing.TM2ComputableInPolyTime.time (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool\n            Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n            (@PlanarHom.Complexity.BitEncoding.encode K\n              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2 dimension\n              basis)))\n        (@Turing.TM2ComputableInPolyTime.outputsFun (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K\n          Bool Bool\n          (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n          (@PlanarHom.Complexity.BitEncoding.encode K\n            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2 dimension\n            basis)\n          table)))"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer_time","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation","kind":"theorem","module":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation","name":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer_time","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : DecidableEq K] [inst_2 : Algebra Rat K] {dimension : Nat}\n  (basis : Module.Basis (Fin dimension) Rat K),\n  Eq (Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer basis).time\n    (Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer basis).time","role":"client","source_line":126,"source_path":"projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Interpolation.lean","source_sha256":"e456ce507e1153e83ef7b73299a9ae4eaa4dd2c3d027a8d8ff876adcf663c99c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Interpolation.lean#L126","type":"∀ {K : Type} [inst : Field.{0} K] [inst_1 : DecidableEq.{1} K]\n  [inst_2 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_2)),\n  @Eq.{1} (@Polynomial.{0} Nat Nat.instSemiring)\n    (@Turing.TM2ComputableInPolyTime.time (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n      (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n        (@PlanarHom.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis)))\n      (@Computability.Encoding.encode.{0, 0} K Bool\n        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n        (@PlanarHom.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension basis)))\n    (@Turing.TM2ComputableInPolyTime.time (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n      (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n      (@PlanarHom.Complexity.BitEncoding.encode K\n        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.sourceComputer K inst inst_1 inst_2 dimension basis))"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation.fp_recover","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation","kind":"theorem","module":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation","name":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation.fp_recover","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : DecidableEq K] [inst_2 : Algebra Rat K] {dimension : Nat}\n  (basis : Module.Basis (Fin dimension) Rat K),\n  PlanarHom.Complexity.FP (Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding basis)\n    (PlanarHom.Complexity.numberFieldEncoding basis) Counting.Algorithm.InterpolationMachine.Materialized.recover","role":"client","source_line":67,"source_path":"projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Interpolation.lean","source_sha256":"e456ce507e1153e83ef7b73299a9ae4eaa4dd2c3d027a8d8ff876adcf663c99c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Interpolation.lean#L67","type":"∀ {K : Type} [inst : Field.{0} K] [inst_1 : DecidableEq.{1} K]\n  [inst_2 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_2)),\n  @PlanarHom.Complexity.FP (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K\n    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis)\n    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)\n    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation.intermediate_stack_bound","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation","kind":"theorem","module":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation","name":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation.intermediate_stack_bound","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : DecidableEq K] [inst_2 : Algebra Rat K] {dimension : Nat}\n  (basis : Module.Basis (Fin dimension) Rat K) (table : Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n  (t : Nat) (c : (Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer basis).tm.Cfg),\n  Eq\n      (Nat.iterate (fun q => q.bind (Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer basis).tm.step) t\n        (Option.some\n          (Turing.initList (Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer basis).tm\n            (List.map\n              (EquivLike.toFunLike.coe\n                (Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer basis).inputAlphabet.symm)\n              ((Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding basis).encode table)))))\n      (Option.some c) →\n    instLENat.le t ((Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer basis).outputsFun table).steps →\n      ∀ (k : (Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer basis).tm.K),\n        instLENat.le (c.stk k).length\n          (Polynomial.eval\n            (List.length ((Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding basis).encode table))\n            (Counting.Algorithm.FieldArithmetic.Clients.Interpolation.stackBound basis))","role":"client","source_line":161,"source_path":"projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Interpolation.lean","source_sha256":"e456ce507e1153e83ef7b73299a9ae4eaa4dd2c3d027a8d8ff876adcf663c99c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Interpolation.lean#L161","type":"∀ {K : Type} [inst : Field.{0} K] [inst_1 : DecidableEq.{1} K]\n  [inst_2 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_2))\n  (table : Counting.Algorithm.InterpolationMachine.Materialized.Table K) (t : Nat)\n  (c :\n    Turing.FinTM2.Cfg\n      (@Turing.TM2ComputableAux.tm Bool Bool\n        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n          (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis)))\n          (@Computability.Encoding.encode.{0, 0} K Bool\n            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n              basis)))))\n  (hrun :\n    @Eq.{1}\n      (Option.{0}\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis)))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                  basis))))))\n      (@Nat.iterate.{1}\n        (Option.{0}\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis)))\n                (@Computability.Encoding.encode.{0, 0} K Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                    basis))))))\n        (fun\n            (q :\n              Option.{0}\n                (Turing.FinTM2.Cfg\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                        Bool.fintype\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis))\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                          dimension basis)))))) =>\n          @Option.bind.{0, 0}\n            (Turing.FinTM2.Cfg\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                      basis)))))\n            (Turing.FinTM2.Cfg\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                      basis)))))\n            q\n            (Turing.FinTM2.step\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                      basis))))))\n        t\n        (@Option.some.{0}\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis)))\n                (@Computability.Encoding.encode.{0, 0} K Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                    basis)))))\n          (Turing.initList\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis)))\n                (@Computability.Encoding.encode.{0, 0} K Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                    basis))))\n            (@List.map.{0, 0} Bool\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                        basis))))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                        Bool.fintype\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis))\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                          dimension basis))))))\n              (@DFunLike.coe.{1, 1, 1}\n                (Equiv.{1, 1} Bool\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                              dimension basis)))\n                        (@Computability.Encoding.encode.{0, 0} K Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                          Bool.fintype\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                            dimension basis))))\n                    (Turing.FinTM2.k₀\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                          (@Computability.Encoding.encode.{0, 0}\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                dimension basis)))\n                          (@Computability.Encoding.encode.{0, 0} K Bool\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                            Bool.fintype\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                dimension basis))\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                              dimension basis)))))))\n                Bool\n                (fun (x : Bool) =>\n                  Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                              dimension basis)))\n                        (@Computability.Encoding.encode.{0, 0} K Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                          Bool.fintype\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                            dimension basis))))\n                    (Turing.FinTM2.k₀\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                          (@Computability.Encoding.encode.{0, 0}\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                dimension basis)))\n                          (@Computability.Encoding.encode.{0, 0} K Bool\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                            Bool.fintype\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                dimension basis))\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                              dimension basis))))))\n                (@EquivLike.toFunLike.{1, 1, 1}\n                  (Equiv.{1, 1} Bool\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                          (@Computability.Encoding.encode.{0, 0}\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                dimension basis)))\n                          (@Computability.Encoding.encode.{0, 0} K Bool\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                            Bool.fintype\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                dimension basis))\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                              dimension basis))))\n                      (Turing.FinTM2.k₀\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                            (@Computability.Encoding.encode.{0, 0}\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                  dimension basis)))\n                            (@Computability.Encoding.encode.{0, 0} K Bool\n                              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                              Bool.fintype\n                              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                  dimension basis))\n                              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                                dimension basis)))))))\n                  Bool\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                              dimension basis)))\n                        (@Computability.Encoding.encode.{0, 0} K Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                          Bool.fintype\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                            dimension basis))))\n                    (Turing.FinTM2.k₀\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                          (@Computability.Encoding.encode.{0, 0}\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                dimension basis)))\n                          (@Computability.Encoding.encode.{0, 0} K Bool\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                            Bool.fintype\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                dimension basis))\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                              dimension basis))))))\n                  (@Equiv.instEquivLike.{1, 1} Bool\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                          (@Computability.Encoding.encode.{0, 0}\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                dimension basis)))\n                          (@Computability.Encoding.encode.{0, 0} K Bool\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                            Bool.fintype\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                dimension basis))\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                              dimension basis))))\n                      (Turing.FinTM2.k₀\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                            (@Computability.Encoding.encode.{0, 0}\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                  dimension basis)))\n                            (@Computability.Encoding.encode.{0, 0} K Bool\n                              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                              Bool.fintype\n                              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                  dimension basis))\n                              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                                dimension basis))))))))\n                (@Equiv.symm.{1, 1}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                              dimension basis)))\n                        (@Computability.Encoding.encode.{0, 0} K Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                          Bool.fintype\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                            dimension basis))))\n                    (Turing.FinTM2.k₀\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                          (@Computability.Encoding.encode.{0, 0}\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                dimension basis)))\n                          (@Computability.Encoding.encode.{0, 0} K Bool\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                            Bool.fintype\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                dimension basis))\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                              dimension basis))))))\n                  Bool\n                  (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                        Bool.fintype\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis))\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                          dimension basis))))))\n              (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis)\n                table)))))\n      (@Option.some.{0}\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis)))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                  basis)))))\n        c))\n  (ht :\n    @LE.le.{0} Nat instLENat t\n      (@StateTransition.EvalsTo.steps.{0}\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis)))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                  basis)))))\n        (Turing.FinTM2.step\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis)))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                  basis)))))\n        (Turing.initList\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis)))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                  basis))))\n          (@List.map.{0, 0} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                      basis))))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                        basis))))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                        basis))))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                        Bool.fintype\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis))\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                          dimension basis))))))\n              Bool\n              (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                      basis)))))\n            (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n              table)))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                      basis))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                        basis)))))))\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis)))\n                (@Computability.Encoding.encode.{0, 0} K Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                    basis)))))\n          (Turing.haltList\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis)))\n                (@Computability.Encoding.encode.{0, 0} K Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                    basis)))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                        basis))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                        Bool.fintype\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis))\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                          dimension basis)))))))\n            (@List.map.{0, 0} Bool\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                        basis))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                        Bool.fintype\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis))\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                          dimension basis))))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                        Bool.fintype\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis))\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                          dimension basis))))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                              dimension basis)))\n                        (@Computability.Encoding.encode.{0, 0} K Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                          Bool.fintype\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                            dimension basis))))))\n                Bool\n                (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                        basis)))))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1 table)))))\n        (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis)))\n                (@Computability.Encoding.encode.{0, 0} K Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                    basis)))))\n          (Turing.FinTM2.step\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis)))\n                (@Computability.Encoding.encode.{0, 0} K Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                    basis)))))\n          (Turing.initList\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis)))\n                (@Computability.Encoding.encode.{0, 0} K Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                      basis))\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                    basis))))\n            (@List.map.{0, 0} Bool\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                        basis))))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                        Bool.fintype\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis))\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                          dimension basis))))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                        Bool.fintype\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis))\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                          dimension basis))))\n                  (Turing.FinTM2.k₀\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                              dimension basis)))\n                        (@Computability.Encoding.encode.{0, 0} K Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                          Bool.fintype\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                            dimension basis))))))\n                Bool\n                (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                        basis)))))\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                table)))\n          (@Option.map.{0, 0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                      Bool.fintype\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                          basis))\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                        basis))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                        Bool.fintype\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis))\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                          dimension basis)))))))\n            (Turing.FinTM2.Cfg\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                      basis)))))\n            (Turing.haltList\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                        basis))\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                      basis)))))\n            (@Option.some.{0}\n              (List.{0}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                        Bool.fintype\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis))\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                          dimension basis))))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                              dimension basis)))\n                        (@Computability.Encoding.encode.{0, 0} K Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                          Bool.fintype\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                            dimension basis)))))))\n              (@List.map.{0, 0} Bool\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                        Bool.fintype\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis))\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                          dimension basis))))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                              dimension basis)))\n                        (@Computability.Encoding.encode.{0, 0} K Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                          Bool.fintype\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                            dimension basis))))))\n                (@Equiv.invFun.{1, 1}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                              dimension basis)))\n                        (@Computability.Encoding.encode.{0, 0} K Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                          Bool.fintype\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                              dimension basis))\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                            dimension basis))))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                          (@Computability.Encoding.encode.{0, 0}\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                dimension basis)))\n                          (@Computability.Encoding.encode.{0, 0} K Bool\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                            Bool.fintype\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                dimension basis))\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                              dimension basis))))))\n                  Bool\n                  (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                        Bool.fintype\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                            dimension basis))\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                          dimension basis)))))\n                (@Computability.Encoding.encode.{0, 0} K Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1 table)))))\n          (@Polynomial.eval.{0} Nat Nat.instSemiring\n            (@List.length.{0} Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                table))\n            (@Turing.TM2ComputableInPolyTime.time (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool\n              Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis)))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                  basis))))\n          (@Turing.TM2ComputableInPolyTime.outputsFun (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K\n            Bool Bool\n            (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                  basis)))\n            (@Computability.Encoding.encode.{0, 0} K Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension basis))\n            table))))\n  (k :\n    Turing.FinTM2.K\n      (@Turing.TM2ComputableAux.tm Bool Bool\n        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n          (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis)))\n          (@Computability.Encoding.encode.{0, 0} K Bool\n            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n              basis))))),\n  @LE.le.{0} Nat instLENat\n    (@List.length.{0}\n      (Turing.FinTM2.Γ\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n            (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                  basis)))\n            (@Computability.Encoding.encode.{0, 0} K Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis))\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                basis))))\n        k)\n      (@Turing.TM2.Cfg.stk.{0, 0, 0, 0}\n        (Turing.FinTM2.K\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis)))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                  basis)))))\n        (Turing.FinTM2.Γ\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis)))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                  basis)))))\n        (Turing.FinTM2.Λ\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis)))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                  basis)))))\n        (Turing.FinTM2.σ\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis)))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype Bool.fintype\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension\n                    basis))\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2 dimension\n                  basis)))))\n        c k))\n    (@Polynomial.eval.{0} Nat Nat.instSemiring\n      (@List.length.{0} Bool\n        (@PlanarHom.Complexity.BitEncoding.encode (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2 dimension basis)\n          table))\n      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.stackBound K inst inst_1 inst_2 dimension basis))"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation.outputs_coefficient","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation","kind":"definition","module":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation","name":"Counting.Algorithm.FieldArithmetic.Clients.Interpolation.outputs_coefficient","name_semantics":"actual named kernel declaration","readable_type":"{K : Type} →\n  [inst : Field K] →\n    [inst_1 : DecidableEq K] →\n      [inst_2 : Algebra Rat K] →\n        {dimension : Nat} →\n          (basis : Module.Basis (Fin dimension) Rat K) →\n            {m : Nat} →\n              (nodes : Fin (instHAdd.hAdd m 1) → K) →\n                Function.Injective nodes →\n                  (P : Polynomial K) →\n                    instLENat.le P.natDegree m →\n                      Turing.TM2OutputsInTime\n                        (Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer basis).tm\n                        (List.map\n                          (EquivLike.toFunLike.coe\n                            (Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer\n                                  basis).inputAlphabet.symm)\n                          ((Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding basis).encode\n                            (Counting.Algorithm.InterpolationMachine.Materialized.tableOf nodes fun i =>\n                              Polynomial.eval (nodes i) P)))\n                        (Option.some\n                          (List.map\n                            (EquivLike.toFunLike.coe\n                              (Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer\n                                    basis).outputAlphabet.symm)\n                            ((PlanarHom.Complexity.numberFieldEncoding basis).encode\n                              (Finsupp.instFunLike.coe P.coeff m))))\n                        (Polynomial.eval\n                          (List.length\n                            ((Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding basis).encode\n                              (Counting.Algorithm.InterpolationMachine.Materialized.tableOf nodes fun i =>\n                                Polynomial.eval (nodes i) P)))\n                          (Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer basis).time)","role":"client","source_line":145,"source_path":"projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Interpolation.lean","source_sha256":"e456ce507e1153e83ef7b73299a9ae4eaa4dd2c3d027a8d8ff876adcf663c99c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/field-arithmetic/Counting/Algorithm/FieldArithmetic/Clients/Interpolation.lean#L145","type":"{K : Type} →\n  [inst : Field.{0} K] →\n    [inst_1 : DecidableEq.{1} K] →\n      [inst_2 :\n          @Algebra.{0, 0} Rat K Rat.commSemiring\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))] →\n        {dimension : Nat} →\n          (basis :\n              @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n                (@Semiring.toAddCommMonoid.{0} K\n                  (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n                (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n                  (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))\n                  inst_2)) →\n            {m : Nat} →\n              (nodes :\n                  Fin\n                      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) →\n                    K) →\n                (hi :\n                    @Function.Injective.{1, 1}\n                      (Fin\n                        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n                      K nodes) →\n                  (P :\n                      @Polynomial.{0} K\n                        (@CommSemiring.toSemiring.{0} K\n                          (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))) →\n                    (hP :\n                        @LE.le.{0} Nat instLENat\n                          (@Polynomial.natDegree.{0} K\n                            (@CommSemiring.toSemiring.{0} K\n                              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))\n                            P)\n                          m) →\n                      Turing.TM2OutputsInTime\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                            (@Computability.Encoding.encode.{0, 0}\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                  dimension basis)))\n                            (@Computability.Encoding.encode.{0, 0} K Bool\n                              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                              Bool.fintype\n                              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                  dimension basis))\n                              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                                dimension basis))))\n                        (@List.map.{0, 0} Bool\n                          (Turing.FinTM2.Γ\n                            (@Turing.TM2ComputableAux.tm Bool Bool\n                              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                (@Computability.Encoding.encode.{0, 0}\n                                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                      inst_2 dimension basis)))\n                                (@Computability.Encoding.encode.{0, 0} K Bool\n                                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                  Bool.fintype Bool.fintype\n                                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                      inst_2 dimension basis))\n                                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                  (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1\n                                    inst_2 dimension basis))))\n                            (Turing.FinTM2.k₀\n                              (@Turing.TM2ComputableAux.tm Bool Bool\n                                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                  (@Computability.Encoding.encode.{0, 0}\n                                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                        inst_2 dimension basis)))\n                                  (@Computability.Encoding.encode.{0, 0} K Bool\n                                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                    Bool.fintype Bool.fintype\n                                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                        inst_2 dimension basis))\n                                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1\n                                      inst_2 dimension basis))))))\n                          (@DFunLike.coe.{1, 1, 1}\n                            (Equiv.{1, 1} Bool\n                              (Turing.FinTM2.Γ\n                                (@Turing.TM2ComputableAux.tm Bool Bool\n                                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                    (@Computability.Encoding.encode.{0, 0}\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                          inst_2 dimension basis)))\n                                    (@Computability.Encoding.encode.{0, 0} K Bool\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                      Bool.fintype Bool.fintype\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                          inst_2 dimension basis))\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1\n                                        inst_2 dimension basis))))\n                                (Turing.FinTM2.k₀\n                                  (@Turing.TM2ComputableAux.tm Bool Bool\n                                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                      (@Computability.Encoding.encode.{0, 0}\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                            inst inst_2 dimension basis)))\n                                      (@Computability.Encoding.encode.{0, 0} K Bool\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                        Bool.fintype Bool.fintype\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                            inst inst_2 dimension basis))\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst\n                                          inst_1 inst_2 dimension basis)))))))\n                            Bool\n                            (fun (x : Bool) =>\n                              Turing.FinTM2.Γ\n                                (@Turing.TM2ComputableAux.tm Bool Bool\n                                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                    (@Computability.Encoding.encode.{0, 0}\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                          inst_2 dimension basis)))\n                                    (@Computability.Encoding.encode.{0, 0} K Bool\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                      Bool.fintype Bool.fintype\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                          inst_2 dimension basis))\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1\n                                        inst_2 dimension basis))))\n                                (Turing.FinTM2.k₀\n                                  (@Turing.TM2ComputableAux.tm Bool Bool\n                                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                      (@Computability.Encoding.encode.{0, 0}\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                            inst inst_2 dimension basis)))\n                                      (@Computability.Encoding.encode.{0, 0} K Bool\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                        Bool.fintype Bool.fintype\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                            inst inst_2 dimension basis))\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst\n                                          inst_1 inst_2 dimension basis))))))\n                            (@EquivLike.toFunLike.{1, 1, 1}\n                              (Equiv.{1, 1} Bool\n                                (Turing.FinTM2.Γ\n                                  (@Turing.TM2ComputableAux.tm Bool Bool\n                                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                      (@Computability.Encoding.encode.{0, 0}\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                            inst inst_2 dimension basis)))\n                                      (@Computability.Encoding.encode.{0, 0} K Bool\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                        Bool.fintype Bool.fintype\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                            inst inst_2 dimension basis))\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst\n                                          inst_1 inst_2 dimension basis))))\n                                  (Turing.FinTM2.k₀\n                                    (@Turing.TM2ComputableAux.tm Bool Bool\n                                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                        (@Computability.Encoding.encode.{0, 0}\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                              inst inst_2 dimension basis)))\n                                        (@Computability.Encoding.encode.{0, 0} K Bool\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                          Bool.fintype Bool.fintype\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                              inst inst_2 dimension basis))\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst\n                                            inst_1 inst_2 dimension basis)))))))\n                              Bool\n                              (Turing.FinTM2.Γ\n                                (@Turing.TM2ComputableAux.tm Bool Bool\n                                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                    (@Computability.Encoding.encode.{0, 0}\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                          inst_2 dimension basis)))\n                                    (@Computability.Encoding.encode.{0, 0} K Bool\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                      Bool.fintype Bool.fintype\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                          inst_2 dimension basis))\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1\n                                        inst_2 dimension basis))))\n                                (Turing.FinTM2.k₀\n                                  (@Turing.TM2ComputableAux.tm Bool Bool\n                                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                      (@Computability.Encoding.encode.{0, 0}\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                            inst inst_2 dimension basis)))\n                                      (@Computability.Encoding.encode.{0, 0} K Bool\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                        Bool.fintype Bool.fintype\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                            inst inst_2 dimension basis))\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst\n                                          inst_1 inst_2 dimension basis))))))\n                              (@Equiv.instEquivLike.{1, 1} Bool\n                                (Turing.FinTM2.Γ\n                                  (@Turing.TM2ComputableAux.tm Bool Bool\n                                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                      (@Computability.Encoding.encode.{0, 0}\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                            inst inst_2 dimension basis)))\n                                      (@Computability.Encoding.encode.{0, 0} K Bool\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                        Bool.fintype Bool.fintype\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                            inst inst_2 dimension basis))\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst\n                                          inst_1 inst_2 dimension basis))))\n                                  (Turing.FinTM2.k₀\n                                    (@Turing.TM2ComputableAux.tm Bool Bool\n                                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                        (@Computability.Encoding.encode.{0, 0}\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                              inst inst_2 dimension basis)))\n                                        (@Computability.Encoding.encode.{0, 0} K Bool\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                          Bool.fintype Bool.fintype\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                              inst inst_2 dimension basis))\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst\n                                            inst_1 inst_2 dimension basis))))))))\n                            (@Equiv.symm.{1, 1}\n                              (Turing.FinTM2.Γ\n                                (@Turing.TM2ComputableAux.tm Bool Bool\n                                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                    (@Computability.Encoding.encode.{0, 0}\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                          inst_2 dimension basis)))\n                                    (@Computability.Encoding.encode.{0, 0} K Bool\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                      Bool.fintype Bool.fintype\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                          inst_2 dimension basis))\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1\n                                        inst_2 dimension basis))))\n                                (Turing.FinTM2.k₀\n                                  (@Turing.TM2ComputableAux.tm Bool Bool\n                                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                      (@Computability.Encoding.encode.{0, 0}\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                            inst inst_2 dimension basis)))\n                                      (@Computability.Encoding.encode.{0, 0} K Bool\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                        Bool.fintype Bool.fintype\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                            inst inst_2 dimension basis))\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst\n                                          inst_1 inst_2 dimension basis))))))\n                              Bool\n                              (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                  (@Computability.Encoding.encode.{0, 0}\n                                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                        inst_2 dimension basis)))\n                                  (@Computability.Encoding.encode.{0, 0} K Bool\n                                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                    Bool.fintype Bool.fintype\n                                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                        inst_2 dimension basis))\n                                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1\n                                      inst_2 dimension basis))))))\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                              dimension basis)\n                            (@Counting.Algorithm.InterpolationMachine.Materialized.tableOf K\n                              (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m\n                                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                              nodes\n                              fun\n                                (i :\n                                  Fin\n                                    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))) =>\n                              @Polynomial.eval.{0} K\n                                (@CommSemiring.toSemiring.{0} K\n                                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))\n                                (nodes i) P)))\n                        (@Option.some.{0}\n                          (List.{0}\n                            (Turing.FinTM2.Γ\n                              (@Turing.TM2ComputableAux.tm Bool Bool\n                                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                  (@Computability.Encoding.encode.{0, 0}\n                                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                        inst_2 dimension basis)))\n                                  (@Computability.Encoding.encode.{0, 0} K Bool\n                                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                    Bool.fintype Bool.fintype\n                                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                        inst_2 dimension basis))\n                                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1\n                                      inst_2 dimension basis))))\n                              (Turing.FinTM2.k₁\n                                (@Turing.TM2ComputableAux.tm Bool Bool\n                                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                    (@Computability.Encoding.encode.{0, 0}\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                          inst_2 dimension basis)))\n                                    (@Computability.Encoding.encode.{0, 0} K Bool\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                      Bool.fintype Bool.fintype\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                          inst_2 dimension basis))\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1\n                                        inst_2 dimension basis)))))))\n                          (@List.map.{0, 0} Bool\n                            (Turing.FinTM2.Γ\n                              (@Turing.TM2ComputableAux.tm Bool Bool\n                                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                  (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                  (@Computability.Encoding.encode.{0, 0}\n                                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                        inst_2 dimension basis)))\n                                  (@Computability.Encoding.encode.{0, 0} K Bool\n                                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                  (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                    Bool.fintype Bool.fintype\n                                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                        inst_2 dimension basis))\n                                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                    (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1\n                                      inst_2 dimension basis))))\n                              (Turing.FinTM2.k₁\n                                (@Turing.TM2ComputableAux.tm Bool Bool\n                                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                    (@Computability.Encoding.encode.{0, 0}\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                          inst_2 dimension basis)))\n                                    (@Computability.Encoding.encode.{0, 0} K Bool\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                      Bool.fintype Bool.fintype\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                          inst_2 dimension basis))\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1\n                                        inst_2 dimension basis))))))\n                            (@DFunLike.coe.{1, 1, 1}\n                              (Equiv.{1, 1} Bool\n                                (Turing.FinTM2.Γ\n                                  (@Turing.TM2ComputableAux.tm Bool Bool\n                                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                      (@Computability.Encoding.encode.{0, 0}\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                            inst inst_2 dimension basis)))\n                                      (@Computability.Encoding.encode.{0, 0} K Bool\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                        Bool.fintype Bool.fintype\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                            inst inst_2 dimension basis))\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst\n                                          inst_1 inst_2 dimension basis))))\n                                  (Turing.FinTM2.k₁\n                                    (@Turing.TM2ComputableAux.tm Bool Bool\n                                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                        (@Computability.Encoding.encode.{0, 0}\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                              inst inst_2 dimension basis)))\n                                        (@Computability.Encoding.encode.{0, 0} K Bool\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                          Bool.fintype Bool.fintype\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                              inst inst_2 dimension basis))\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst\n                                            inst_1 inst_2 dimension basis)))))))\n                              Bool\n                              (fun (x : Bool) =>\n                                Turing.FinTM2.Γ\n                                  (@Turing.TM2ComputableAux.tm Bool Bool\n                                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                      (@Computability.Encoding.encode.{0, 0}\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                            inst inst_2 dimension basis)))\n                                      (@Computability.Encoding.encode.{0, 0} K Bool\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                        Bool.fintype Bool.fintype\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                            inst inst_2 dimension basis))\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst\n                                          inst_1 inst_2 dimension basis))))\n                                  (Turing.FinTM2.k₁\n                                    (@Turing.TM2ComputableAux.tm Bool Bool\n                                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                        (@Computability.Encoding.encode.{0, 0}\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                              inst inst_2 dimension basis)))\n                                        (@Computability.Encoding.encode.{0, 0} K Bool\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                          Bool.fintype Bool.fintype\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                              inst inst_2 dimension basis))\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst\n                                            inst_1 inst_2 dimension basis))))))\n                              (@EquivLike.toFunLike.{1, 1, 1}\n                                (Equiv.{1, 1} Bool\n                                  (Turing.FinTM2.Γ\n                                    (@Turing.TM2ComputableAux.tm Bool Bool\n                                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                        (@Computability.Encoding.encode.{0, 0}\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                              inst inst_2 dimension basis)))\n                                        (@Computability.Encoding.encode.{0, 0} K Bool\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                          Bool.fintype Bool.fintype\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                              inst inst_2 dimension basis))\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst\n                                            inst_1 inst_2 dimension basis))))\n                                    (Turing.FinTM2.k₁\n                                      (@Turing.TM2ComputableAux.tm Bool Bool\n                                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                          (@Computability.Encoding.encode.{0, 0}\n                                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                                inst inst_2 dimension basis)))\n                                          (@Computability.Encoding.encode.{0, 0} K Bool\n                                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension\n                                                basis)))\n                                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                            Bool.fintype Bool.fintype\n                                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                                inst inst_2 dimension basis))\n                                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst\n                                              inst_1)\n                                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst\n                                              inst_1 inst_2 dimension basis)))))))\n                                Bool\n                                (Turing.FinTM2.Γ\n                                  (@Turing.TM2ComputableAux.tm Bool Bool\n                                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                      (@Computability.Encoding.encode.{0, 0}\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                            inst inst_2 dimension basis)))\n                                      (@Computability.Encoding.encode.{0, 0} K Bool\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                        Bool.fintype Bool.fintype\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                            inst inst_2 dimension basis))\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst\n                                          inst_1 inst_2 dimension basis))))\n                                  (Turing.FinTM2.k₁\n                                    (@Turing.TM2ComputableAux.tm Bool Bool\n                                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                        (@Computability.Encoding.encode.{0, 0}\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                              inst inst_2 dimension basis)))\n                                        (@Computability.Encoding.encode.{0, 0} K Bool\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                          Bool.fintype Bool.fintype\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                              inst inst_2 dimension basis))\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst\n                                            inst_1 inst_2 dimension basis))))))\n                                (@Equiv.instEquivLike.{1, 1} Bool\n                                  (Turing.FinTM2.Γ\n                                    (@Turing.TM2ComputableAux.tm Bool Bool\n                                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                        (@Computability.Encoding.encode.{0, 0}\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                              inst inst_2 dimension basis)))\n                                        (@Computability.Encoding.encode.{0, 0} K Bool\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                          Bool.fintype Bool.fintype\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                              inst inst_2 dimension basis))\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst\n                                            inst_1 inst_2 dimension basis))))\n                                    (Turing.FinTM2.k₁\n                                      (@Turing.TM2ComputableAux.tm Bool Bool\n                                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                          (@Computability.Encoding.encode.{0, 0}\n                                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                                inst inst_2 dimension basis)))\n                                          (@Computability.Encoding.encode.{0, 0} K Bool\n                                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension\n                                                basis)))\n                                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                            Bool.fintype Bool.fintype\n                                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                                inst inst_2 dimension basis))\n                                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst\n                                              inst_1)\n                                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst\n                                              inst_1 inst_2 dimension basis))))))))\n                              (@Equiv.symm.{1, 1}\n                                (Turing.FinTM2.Γ\n                                  (@Turing.TM2ComputableAux.tm Bool Bool\n                                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                      (@Computability.Encoding.encode.{0, 0}\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                            inst inst_2 dimension basis)))\n                                      (@Computability.Encoding.encode.{0, 0} K Bool\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                        Bool.fintype Bool.fintype\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                            inst inst_2 dimension basis))\n                                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst\n                                          inst_1 inst_2 dimension basis))))\n                                  (Turing.FinTM2.k₁\n                                    (@Turing.TM2ComputableAux.tm Bool Bool\n                                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                        (@Computability.Encoding.encode.{0, 0}\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                              inst inst_2 dimension basis)))\n                                        (@Computability.Encoding.encode.{0, 0} K Bool\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                        (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                          (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                          Bool.fintype Bool.fintype\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                            (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K\n                                              inst inst_2 dimension basis))\n                                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                          (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                          (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst\n                                            inst_1 inst_2 dimension basis))))))\n                                Bool\n                                (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                    (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                    (@Computability.Encoding.encode.{0, 0}\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                          inst_2 dimension basis)))\n                                    (@Computability.Encoding.encode.{0, 0} K Bool\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                                    (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                                      (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                                      Bool.fintype Bool.fintype\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                        (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                        (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst\n                                          inst_2 dimension basis))\n                                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                                      (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                                      (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1\n                                        inst_2 dimension basis))))))\n                            (@PlanarHom.Complexity.BitEncoding.encode K\n                              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)\n                              (@DFunLike.coe.{1, 1, 1}\n                                (@Finsupp.{0, 0} Nat K\n                                  (@MulZeroClass.toZero.{0} K\n                                    (@instMulZeroClassOfSemiring.{0} K\n                                      (@CommSemiring.toSemiring.{0} K\n                                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))))\n                                Nat (fun (x : Nat) => K)\n                                (@Finsupp.instFunLike.{0, 0} Nat K\n                                  (@MulZeroClass.toZero.{0} K\n                                    (@instMulZeroClassOfSemiring.{0} K\n                                      (@CommSemiring.toSemiring.{0} K\n                                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))))\n                                (@Polynomial.coeff.{0} K\n                                  (@CommSemiring.toSemiring.{0} K\n                                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))\n                                  P)\n                                m))))\n                        (@Polynomial.eval.{0} Nat Nat.instSemiring\n                          (@List.length.{0} Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                dimension basis)\n                              (@Counting.Algorithm.InterpolationMachine.Materialized.tableOf K\n                                (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                                nodes\n                                fun\n                                  (i :\n                                    Fin\n                                      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m\n                                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))) =>\n                                @Polynomial.eval.{0} K\n                                  (@CommSemiring.toSemiring.{0} K\n                                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))\n                                  (nodes i) P)))\n                          (@Turing.TM2ComputableInPolyTime.time\n                            (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool\n                            (@Computability.Encoding.encode.{0, 0}\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) Bool\n                              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                  dimension basis)))\n                            (@Computability.Encoding.encode.{0, 0} K Bool\n                              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis)))\n                            (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                              (Counting.Algorithm.InterpolationMachine.Materialized.Table K) K Bool Bool Bool.fintype\n                              Bool.fintype\n                              (@PlanarHom.Complexity.BitEncoding.toFinEncoding\n                                (Counting.Algorithm.InterpolationMachine.Materialized.Table K)\n                                (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.inputEncoding K inst inst_2\n                                  dimension basis))\n                              (@PlanarHom.Complexity.BitEncoding.toFinEncoding K\n                                (@PlanarHom.Complexity.numberFieldEncoding K inst inst_2 dimension basis))\n                              (@Counting.Algorithm.InterpolationMachine.Materialized.recover K inst inst_1)\n                              (@Counting.Algorithm.FieldArithmetic.Clients.Interpolation.computer K inst inst_1 inst_2\n                                dimension basis))))"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Heights.canonical_bounded","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Heights","kind":"theorem","module":"PlanarHom.UniformFieldArithmeticHeights","name":"PlanarHom.UniformFieldHeights.canonical_bounded","name_semantics":"Lean export spelling resolves to the canonical name; no second kernel constant","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {dimension : Nat} {basis : Module.Basis (Fin dimension) Rat K}\n  {c : Nat},\n  instLENat.le dimension c →\n    ∀ (x : K) (N : Nat),\n      instLENat.le (List.length ((PlanarHom.Complexity.numberFieldEncoding basis).encode x)) N →\n        (PlanarHom.CanonicalCoordinateHeights.certificate basis x).Bounded\n          (instHPow.hPow 2 (instHMul.hMul (instHAdd.hAdd c 1) N))\n          (instHPow.hPow 2 (instHMul.hMul (instHAdd.hAdd c 1) N))","role":"canonical-export-alias","source_line":11,"source_path":"projects/planar-algorithms/PlanarHom/UniformFieldArithmeticHeights.lean","source_sha256":"d2d572ec025eb6571d1900a1c53115c2fbc7443bc2f5829090b11d924eb36431","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/planar-algorithms/PlanarHom/UniformFieldArithmeticHeights.lean#L11","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  {basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)}\n  {c : Nat} (hd : @LE.le.{0} Nat instLENat dimension c) (x : K) (N : Nat)\n  (hx :\n    @LE.le.{0} Nat instLENat\n      (@List.length.{0} Bool\n        (@PlanarHom.Complexity.BitEncoding.encode K\n          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis) x))\n      N),\n  @PlanarHom.FieldCoordinateCertificates.Certificate.Bounded K inst inst_1 dimension basis x\n    (@PlanarHom.CanonicalCoordinateHeights.certificate K inst inst_1 dimension basis x)\n    (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n      (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n      (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) c\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        N))\n    (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n      (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n      (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) c\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        N))"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Heights.encoding_length_uniform","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Heights","kind":"theorem","module":"PlanarHom.UniformFieldArithmeticHeights","name":"PlanarHom.UniformFieldHeights.encoding_length_uniform","name_semantics":"Lean export spelling resolves to the canonical name; no second kernel constant","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {dimension : Nat} {basis : Module.Basis (Fin dimension) Rat K}\n  {c E : Nat},\n  instLENat.le dimension c →\n    ∀ {x : K} (a : PlanarHom.FieldCoordinateCertificates.Certificate basis x),\n      a.Bounded (instHPow.hPow 2 E) (instHPow.hPow 2 E) →\n        instLENat.le (List.length ((PlanarHom.Complexity.numberFieldEncoding basis).encode x))\n          (Polynomial.eval E (PlanarHom.EncodingSizeBounds.coordinateOutputPolynomial c 2 2))","role":"canonical-export-alias","source_line":19,"source_path":"projects/planar-algorithms/PlanarHom/UniformFieldArithmeticHeights.lean","source_sha256":"d2d572ec025eb6571d1900a1c53115c2fbc7443bc2f5829090b11d924eb36431","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/planar-algorithms/PlanarHom/UniformFieldArithmeticHeights.lean#L19","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  {basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)}\n  {c E : Nat} (hd : @LE.le.{0} Nat instLENat dimension c) {x : K}\n  (a : @PlanarHom.FieldCoordinateCertificates.Certificate K inst inst_1 dimension basis x)\n  (ha :\n    @PlanarHom.FieldCoordinateCertificates.Certificate.Bounded K inst inst_1 dimension basis x a\n      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) E)\n      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) E)),\n  @LE.le.{0} Nat instLENat\n    (@List.length.{0} Bool\n      (@PlanarHom.Complexity.BitEncoding.encode K\n        (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis) x))\n    (@Polynomial.eval.{0} Nat Nat.instSemiring E\n      (PlanarHom.EncodingSizeBounds.coordinateOutputPolynomial c\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Heights.inverse_neg_encoding_bound","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Heights","kind":"theorem","module":"PlanarHom.UniformFieldArithmeticHeights","name":"PlanarHom.UniformFieldHeights.inverse_neg_encoding_bound","name_semantics":"Lean export spelling resolves to the canonical name; no second kernel constant","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {dimension : Nat} {basis : Module.Basis (Fin dimension) Rat K}\n  (data : PlanarHom.IntegerCoordinateBounds.ClearedCoordinates basis fun k => Module.Basis.instFunLike.coe basis k)\n  {c H : Nat},\n  instLENat.le dimension c →\n    instLENat.le (PlanarHom.FieldCoordinateCertificates.Certificate.heightConstant data) (instHPow.hPow 2 H) →\n      ∀ (x : K) (N : Nat),\n        instLENat.le (List.length ((PlanarHom.Complexity.numberFieldEncoding basis).encode x)) N →\n          And\n            (instLENat.le\n              (List.length\n                ((PlanarHom.Complexity.numberFieldEncoding basis).encode\n                  (DivisionMonoid.toDivInvOneMonoid.toInvOneClass.inv x)))\n              (Polynomial.eval (instHAdd.hAdd N H) (PlanarHom.UniformFieldHeights.inversePolynomial c)))\n            (instLENat.le\n              (List.length\n                ((PlanarHom.Complexity.numberFieldEncoding basis).encode\n                  (SubtractionMonoid.toSubNegZeroMonoid.toNegZeroClass.neg x)))\n              (Polynomial.eval (instHAdd.hAdd N H) (PlanarHom.UniformFieldHeights.inversePolynomial c)))","role":"canonical-export-alias","source_line":67,"source_path":"projects/planar-algorithms/PlanarHom/UniformFieldArithmeticHeights.lean","source_sha256":"d2d572ec025eb6571d1900a1c53115c2fbc7443bc2f5829090b11d924eb36431","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/planar-algorithms/PlanarHom/UniformFieldArithmeticHeights.lean#L67","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  {basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)}\n  (data :\n    @PlanarHom.IntegerCoordinateBounds.ClearedCoordinates.{0, 0} K inst inst_1 dimension basis (Fin dimension)\n      fun (k : Fin dimension) =>\n      @DFunLike.coe.{1, 1, 1}\n        (@Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n          (@Semiring.toAddCommMonoid.{0} K\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n          (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1))\n        (Fin dimension) (fun (x : Fin dimension) => K)\n        (@Module.Basis.instFunLike.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n          (@Semiring.toAddCommMonoid.{0} K\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n          (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1))\n        basis k)\n  {c H : Nat} (hd : @LE.le.{0} Nat instLENat dimension c)\n  (hdata :\n    @LE.le.{0} Nat instLENat\n      (@PlanarHom.FieldCoordinateCertificates.Certificate.heightConstant K inst inst_1 dimension basis data)\n      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) H))\n  (x : K) (N : Nat)\n  (hx :\n    @LE.le.{0} Nat instLENat\n      (@List.length.{0} Bool\n        (@PlanarHom.Complexity.BitEncoding.encode K\n          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis) x))\n      N),\n  And\n    (@LE.le.{0} Nat instLENat\n      (@List.length.{0} Bool\n        (@PlanarHom.Complexity.BitEncoding.encode K\n          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n          (@Inv.inv.{0} K\n            (@InvOneClass.toInv.{0} K\n              (@DivInvOneMonoid.toInvOneClass.{0} K\n                (@DivisionMonoid.toDivInvOneMonoid.{0} K\n                  (@DivisionCommMonoid.toDivisionMonoid.{0} K\n                    (@CommGroupWithZero.toDivisionCommMonoid.{0} K\n                      (@Semifield.toCommGroupWithZero.{0} K (@Field.toSemifield.{0} K inst)))))))\n            x)))\n      (@Polynomial.eval.{0} Nat Nat.instSemiring (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) N H)\n        (PlanarHom.UniformFieldHeights.inversePolynomial c)))\n    (@LE.le.{0} Nat instLENat\n      (@List.length.{0} Bool\n        (@PlanarHom.Complexity.BitEncoding.encode K\n          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n          (@Neg.neg.{0} K\n            (@NegZeroClass.toNeg.{0} K\n              (@SubNegZeroMonoid.toNegZeroClass.{0} K\n                (@SubtractionMonoid.toSubNegZeroMonoid.{0} K\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{0} K\n                    (@AddCommGroup.toDivisionAddCommMonoid.{0} K\n                      (@Ring.toAddCommGroup.{0} K (@DivisionRing.toRing.{0} K (@Field.toDivisionRing.{0} K inst))))))))\n            x)))\n      (@Polynomial.eval.{0} Nat Nat.instSemiring (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) N H)\n        (PlanarHom.UniformFieldHeights.inversePolynomial c)))"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Heights.operations_encoding_bound","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Heights","kind":"theorem","module":"PlanarHom.UniformFieldArithmeticHeights","name":"PlanarHom.UniformFieldHeights.operations_encoding_bound","name_semantics":"Lean export spelling resolves to the canonical name; no second kernel constant","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {dimension : Nat} {basis : Module.Basis (Fin dimension) Rat K}\n  (data : PlanarHom.IntegerCoordinateBounds.ClearedCoordinates basis fun k => Module.Basis.instFunLike.coe basis k)\n  {c H : Nat},\n  instLENat.le dimension c →\n    instLENat.le (PlanarHom.FieldCoordinateCertificates.Certificate.heightConstant data) (instHPow.hPow 2 H) →\n      ∀ (x y : K) (N : Nat),\n        instLENat.le (List.length ((PlanarHom.Complexity.numberFieldEncoding basis).encode x)) N →\n          instLENat.le (List.length ((PlanarHom.Complexity.numberFieldEncoding basis).encode y)) N →\n            And\n              (instLENat.le (List.length ((PlanarHom.Complexity.numberFieldEncoding basis).encode (instHAdd.hAdd x y)))\n                (Polynomial.eval (instHAdd.hAdd N H) (PlanarHom.UniformFieldHeights.operationPolynomial c)))\n              (And\n                (instLENat.le\n                  (List.length ((PlanarHom.Complexity.numberFieldEncoding basis).encode (instHSub.hSub x y)))\n                  (Polynomial.eval (instHAdd.hAdd N H) (PlanarHom.UniformFieldHeights.operationPolynomial c)))\n                (And\n                  (instLENat.le\n                    (List.length ((PlanarHom.Complexity.numberFieldEncoding basis).encode (instHMul.hMul x y)))\n                    (Polynomial.eval (instHAdd.hAdd N H) (PlanarHom.UniformFieldHeights.operationPolynomial c)))\n                  (instLENat.le\n                    (List.length ((PlanarHom.Complexity.numberFieldEncoding basis).encode (instHDiv.hDiv x y)))\n                    (Polynomial.eval (instHAdd.hAdd N H) (PlanarHom.UniformFieldHeights.operationPolynomial c)))))","role":"canonical-export-alias","source_line":101,"source_path":"projects/planar-algorithms/PlanarHom/UniformFieldArithmeticHeights.lean","source_sha256":"d2d572ec025eb6571d1900a1c53115c2fbc7443bc2f5829090b11d924eb36431","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/planar-algorithms/PlanarHom/UniformFieldArithmeticHeights.lean#L101","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  {basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)}\n  (data :\n    @PlanarHom.IntegerCoordinateBounds.ClearedCoordinates.{0, 0} K inst inst_1 dimension basis (Fin dimension)\n      fun (k : Fin dimension) =>\n      @DFunLike.coe.{1, 1, 1}\n        (@Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n          (@Semiring.toAddCommMonoid.{0} K\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n          (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1))\n        (Fin dimension) (fun (x : Fin dimension) => K)\n        (@Module.Basis.instFunLike.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n          (@Semiring.toAddCommMonoid.{0} K\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n          (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1))\n        basis k)\n  {c H : Nat} (hd : @LE.le.{0} Nat instLENat dimension c)\n  (hdata :\n    @LE.le.{0} Nat instLENat\n      (@PlanarHom.FieldCoordinateCertificates.Certificate.heightConstant K inst inst_1 dimension basis data)\n      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) H))\n  (x y : K) (N : Nat)\n  (hx :\n    @LE.le.{0} Nat instLENat\n      (@List.length.{0} Bool\n        (@PlanarHom.Complexity.BitEncoding.encode K\n          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis) x))\n      N)\n  (hy :\n    @LE.le.{0} Nat instLENat\n      (@List.length.{0} Bool\n        (@PlanarHom.Complexity.BitEncoding.encode K\n          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis) y))\n      N),\n  And\n    (@LE.le.{0} Nat instLENat\n      (@List.length.{0} Bool\n        (@PlanarHom.Complexity.BitEncoding.encode K\n          (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n          (@HAdd.hAdd.{0, 0, 0} K K K\n            (@instHAdd.{0} K\n              (@Distrib.toAdd.{0} K\n                (@instDistribOfSemiring.{0} K\n                  (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))))\n            x y)))\n      (@Polynomial.eval.{0} Nat Nat.instSemiring (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) N H)\n        (PlanarHom.UniformFieldHeights.operationPolynomial c)))\n    (And\n      (@LE.le.{0} Nat instLENat\n        (@List.length.{0} Bool\n          (@PlanarHom.Complexity.BitEncoding.encode K\n            (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n            (@HSub.hSub.{0, 0, 0} K K K\n              (@instHSub.{0} K\n                (@SubNegMonoid.toSub.{0} K\n                  (@AddGroup.toSubNegMonoid.{0} K\n                    (@AddGroupWithOne.toAddGroup.{0} K\n                      (@Ring.toAddGroupWithOne.{0} K\n                        (@DivisionRing.toRing.{0} K (@Field.toDivisionRing.{0} K inst)))))))\n              x y)))\n        (@Polynomial.eval.{0} Nat Nat.instSemiring (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) N H)\n          (PlanarHom.UniformFieldHeights.operationPolynomial c)))\n      (And\n        (@LE.le.{0} Nat instLENat\n          (@List.length.{0} Bool\n            (@PlanarHom.Complexity.BitEncoding.encode K\n              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n              (@HMul.hMul.{0, 0, 0} K K K\n                (@instHMul.{0} K\n                  (@Distrib.toMul.{0} K\n                    (@instDistribOfSemiring.{0} K\n                      (@CommSemiring.toSemiring.{0} K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))))\n                x y)))\n          (@Polynomial.eval.{0} Nat Nat.instSemiring\n            (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) N H)\n            (PlanarHom.UniformFieldHeights.operationPolynomial c)))\n        (@LE.le.{0} Nat instLENat\n          (@List.length.{0} Bool\n            (@PlanarHom.Complexity.BitEncoding.encode K\n              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n              (@HDiv.hDiv.{0, 0, 0} K K K\n                (@instHDiv.{0} K\n                  (@DivInvMonoid.toDiv.{0} K (@DivisionRing.toDivInvMonoid.{0} K (@Field.toDivisionRing.{0} K inst))))\n                x y)))\n          (@Polynomial.eval.{0} Nat Nat.instSemiring\n            (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) N H)\n            (PlanarHom.UniformFieldHeights.operationPolynomial c)))))"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Materialized.exists_polynomial_prefix_encoding_bound","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Materialized","kind":"theorem","module":"PlanarHom.MaterializedFieldHeights","name":"PlanarHom.MaterializedFieldHeights.exists_polynomial_prefix_encoding_bound","name_semantics":"Lean export spelling resolves to the canonical name; no second kernel constant","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {dimension : Nat} (basis : Module.Basis (Fin dimension) Rat K),\n  Exists fun p =>\n    ∀ (a : K) (xs : List K) (i : Nat),\n      And\n        (instLENat.le\n          (List.length\n            ((PlanarHom.Complexity.numberFieldEncoding basis).encode (instHMul.hMul a (List.take i xs).prod)))\n          (Polynomial.eval\n            (List.length\n              (((PlanarHom.Complexity.numberFieldEncoding basis).prod\n                    (PlanarHom.Complexity.numberFieldEncoding basis).list).encode\n                { fst := a, snd := xs }))\n            p))\n        (instLENat.le\n          (List.length ((PlanarHom.Complexity.numberFieldEncoding basis).encode (instHAdd.hAdd a (List.take i xs).sum)))\n          (Polynomial.eval\n            (List.length\n              (((PlanarHom.Complexity.numberFieldEncoding basis).prod\n                    (PlanarHom.Complexity.numberFieldEncoding basis).list).encode\n                { fst := a, snd := xs }))\n            p))","role":"canonical-export-alias","source_line":111,"source_path":"projects/planar-machines/PlanarHom/MaterializedFieldHeights.lean","source_sha256":"55874f77d003407cb8758774a86e2423812727c2e8a26707503033536f0bd5ab","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/planar-machines/PlanarHom/MaterializedFieldHeights.lean#L111","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)),\n  @Exists.{1} (@Polynomial.{0} Nat Nat.instSemiring) fun (p : @Polynomial.{0} Nat Nat.instSemiring) =>\n    ∀ (a : K) (xs : List.{0} K) (i : Nat),\n      And\n        (@LE.le.{0} Nat instLENat\n          (@List.length.{0} Bool\n            (@PlanarHom.Complexity.BitEncoding.encode K\n              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n              (@HMul.hMul.{0, 0, 0} K K K\n                (@instHMul.{0} K\n                  (@Distrib.toMul.{0} K\n                    (@instDistribOfSemiring.{0} K\n                      (@CommSemiring.toSemiring.{0} K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))))\n                a\n                (@List.prod.{0} K\n                  (@Distrib.toMul.{0} K\n                    (@instDistribOfSemiring.{0} K\n                      (@CommSemiring.toSemiring.{0} K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))))\n                  (@AddMonoidWithOne.toOne.{0} K\n                    (@AddGroupWithOne.toAddMonoidWithOne.{0} K\n                      (@Ring.toAddGroupWithOne.{0} K (@DivisionRing.toRing.{0} K (@Field.toDivisionRing.{0} K inst)))))\n                  (@List.take.{0} K i xs)))))\n          (@Polynomial.eval.{0} Nat Nat.instSemiring\n            (@List.length.{0} Bool\n              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K (List.{0} K))\n                (@PlanarHom.Complexity.BitEncoding.prod K (List.{0} K)\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n                  (@PlanarHom.Complexity.BitEncoding.list K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                (@Prod.mk.{0, 0} K (List.{0} K) a xs)))\n            p))\n        (@LE.le.{0} Nat instLENat\n          (@List.length.{0} Bool\n            (@PlanarHom.Complexity.BitEncoding.encode K\n              (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n              (@HAdd.hAdd.{0, 0, 0} K K K\n                (@instHAdd.{0} K\n                  (@Distrib.toAdd.{0} K\n                    (@instDistribOfSemiring.{0} K\n                      (@CommSemiring.toSemiring.{0} K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))))\n                a\n                (@List.sum.{0} K\n                  (@Distrib.toAdd.{0} K\n                    (@instDistribOfSemiring.{0} K\n                      (@CommSemiring.toSemiring.{0} K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))))\n                  (@MulZeroClass.toZero.{0} K\n                    (@instMulZeroClassOfSemiring.{0} K\n                      (@CommSemiring.toSemiring.{0} K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))))\n                  (@List.take.{0} K i xs)))))\n          (@Polynomial.eval.{0} Nat Nat.instSemiring\n            (@List.length.{0} Bool\n              (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} K (List.{0} K))\n                (@PlanarHom.Complexity.BitEncoding.prod K (List.{0} K)\n                  (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n                  (@PlanarHom.Complexity.BitEncoding.list K\n                    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                (@Prod.mk.{0, 0} K (List.{0} K) a xs)))\n            p))"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Materialized.fp_product","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Materialized","kind":"theorem","module":"PlanarHom.MaterializedFieldListMachines","name":"PlanarHom.MaterializedFieldListMachines.fp_product","name_semantics":"Lean export spelling resolves to the canonical name; no second kernel constant","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {dimension : Nat} (basis : Module.Basis (Fin dimension) Rat K),\n  PlanarHom.Complexity.FP (PlanarHom.Complexity.numberFieldEncoding basis).list\n    (PlanarHom.Complexity.numberFieldEncoding basis) List.prod","role":"canonical-export-alias","source_line":37,"source_path":"projects/planar-machines/PlanarHom/MaterializedFieldListMachines.lean","source_sha256":"f7c677b9efd853ce43f8fe485650d48b7f5b3046f482c7b2636d0d8848c68012","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/planar-machines/PlanarHom/MaterializedFieldListMachines.lean#L37","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)),\n  @PlanarHom.Complexity.FP (List.{0} K) K\n    (@PlanarHom.Complexity.BitEncoding.list K (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n    (@List.prod.{0} K\n      (@Distrib.toMul.{0} K\n        (@instDistribOfSemiring.{0} K\n          (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))))\n      (@AddMonoidWithOne.toOne.{0} K\n        (@AddGroupWithOne.toAddMonoidWithOne.{0} K\n          (@Ring.toAddGroupWithOne.{0} K (@DivisionRing.toRing.{0} K (@Field.toDivisionRing.{0} K inst))))))"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.Materialized.fp_sum","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic.Materialized","kind":"theorem","module":"PlanarHom.MaterializedFieldListMachines","name":"PlanarHom.MaterializedFieldListMachines.fp_sum","name_semantics":"Lean export spelling resolves to the canonical name; no second kernel constant","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {dimension : Nat} (basis : Module.Basis (Fin dimension) Rat K),\n  PlanarHom.Complexity.FP (PlanarHom.Complexity.numberFieldEncoding basis).list\n    (PlanarHom.Complexity.numberFieldEncoding basis) List.sum","role":"canonical-export-alias","source_line":41,"source_path":"projects/planar-machines/PlanarHom/MaterializedFieldListMachines.lean","source_sha256":"f7c677b9efd853ce43f8fe485650d48b7f5b3046f482c7b2636d0d8848c68012","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/planar-machines/PlanarHom/MaterializedFieldListMachines.lean#L41","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)),\n  @PlanarHom.Complexity.FP (List.{0} K) K\n    (@PlanarHom.Complexity.BitEncoding.list K (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n    (@List.sum.{0} K\n      (@Distrib.toAdd.{0} K\n        (@instDistribOfSemiring.{0} K\n          (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))))\n      (@MulZeroClass.toZero.{0} K\n        (@instMulZeroClassOfSemiring.{0} K\n          (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))))"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.fp_addition","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic","kind":"theorem","module":"PlanarHom.FixedFieldArithmeticMachines","name":"PlanarHom.FixedFieldArithmetic.fp_addition","name_semantics":"Lean export spelling resolves to the canonical name; no second kernel constant","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {dimension : Nat} (basis : Module.Basis (Fin dimension) Rat K),\n  PlanarHom.Complexity.FP\n    ((PlanarHom.Complexity.numberFieldEncoding basis).prod (PlanarHom.Complexity.numberFieldEncoding basis))\n    (PlanarHom.Complexity.numberFieldEncoding basis) fun p => instHAdd.hAdd p.fst p.snd","role":"canonical-export-alias","source_line":26,"source_path":"projects/planar-machines/PlanarHom/FixedFieldArithmeticMachines.lean","source_sha256":"d2d914f281300a63182441d90b2919a20e12301231f94fbf34d92515433fb3e2","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/planar-machines/PlanarHom/FixedFieldArithmeticMachines.lean#L26","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)),\n  @PlanarHom.Complexity.FP (Prod.{0, 0} K K) K\n    (@PlanarHom.Complexity.BitEncoding.prod K K\n      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis) fun (p : Prod.{0, 0} K K) =>\n    @HAdd.hAdd.{0, 0, 0} K K K\n      (@instHAdd.{0} K\n        (@Distrib.toAdd.{0} K\n          (@instDistribOfSemiring.{0} K\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))))\n      (@Prod.fst.{0, 0} K K p) (@Prod.snd.{0, 0} K K p)"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.fp_coordinate","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic","kind":"theorem","module":"PlanarHom.FixedFieldArithmeticMachines","name":"PlanarHom.FixedFieldArithmetic.fp_coordinate","name_semantics":"Lean export spelling resolves to the canonical name; no second kernel constant","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {dimension : Nat} (basis : Module.Basis (Fin dimension) Rat K)\n  (i : Fin dimension),\n  PlanarHom.Complexity.FP (PlanarHom.Complexity.numberFieldEncoding basis) PlanarHom.Complexity.BitEncoding.rat fun x =>\n    EquivLike.toFunLike.coe basis.equivFun x i","role":"canonical-export-alias","source_line":14,"source_path":"projects/planar-machines/PlanarHom/FixedFieldArithmeticMachines.lean","source_sha256":"d2d914f281300a63182441d90b2919a20e12301231f94fbf34d92515433fb3e2","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/planar-machines/PlanarHom/FixedFieldArithmeticMachines.lean#L14","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1))\n  (i : Fin dimension),\n  @PlanarHom.Complexity.FP K Rat (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n    PlanarHom.Complexity.BitEncoding.rat fun (x : K) =>\n    @DFunLike.coe.{1, 1, 1}\n      (@LinearEquiv.{0, 0, 0, 0} Rat Rat Rat.semiring Rat.semiring\n        (@RingHom.id.{0} Rat (@Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))\n        (@RingHom.id.{0} Rat (@Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))\n        (@RingHomInvPair.ids.{0} Rat Rat.semiring) (@RingHomInvPair.ids.{0} Rat Rat.semiring) K (Fin dimension → Rat)\n        (@Semiring.toAddCommMonoid.{0} K\n          (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n        (@Pi.addCommMonoid.{0, 0} (Fin dimension) (fun (a : Fin dimension) => Rat) fun (i : Fin dimension) =>\n          @Semiring.toAddCommMonoid.{0} Rat Rat.semiring)\n        (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n          (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)\n        (@Pi.Function.module.{0, 0, 0} (Fin dimension) Rat Rat Rat.semiring\n          (@Semiring.toAddCommMonoid.{0} Rat Rat.semiring) (@Semiring.toModule.{0} Rat Rat.semiring)))\n      K (fun (x : K) => Fin dimension → Rat)\n      (@EquivLike.toFunLike.{1, 1, 1}\n        (@LinearEquiv.{0, 0, 0, 0} Rat Rat Rat.semiring Rat.semiring\n          (@RingHom.id.{0} Rat (@Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))\n          (@RingHom.id.{0} Rat (@Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))\n          (@RingHomInvPair.ids.{0} Rat Rat.semiring) (@RingHomInvPair.ids.{0} Rat Rat.semiring) K (Fin dimension → Rat)\n          (@Semiring.toAddCommMonoid.{0} K\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n          (@Pi.addCommMonoid.{0, 0} (Fin dimension) (fun (a : Fin dimension) => Rat) fun (i : Fin dimension) =>\n            @Semiring.toAddCommMonoid.{0} Rat Rat.semiring)\n          (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)\n          (@Pi.Function.module.{0, 0, 0} (Fin dimension) Rat Rat Rat.semiring\n            (@Semiring.toAddCommMonoid.{0} Rat Rat.semiring) (@Semiring.toModule.{0} Rat Rat.semiring)))\n        K (Fin dimension → Rat)\n        (@DFinsupp.instEquivLikeLinearEquiv.{0, 0, 0, 0} Rat Rat Rat.semiring Rat.semiring\n          (@RingHom.id.{0} Rat (@Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))\n          (@RingHom.id.{0} Rat (@Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))\n          (@RingHomInvPair.ids.{0} Rat Rat.semiring) (@RingHomInvPair.ids.{0} Rat Rat.semiring) K (Fin dimension → Rat)\n          (@Semiring.toAddCommMonoid.{0} K\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n          (@Pi.addCommMonoid.{0, 0} (Fin dimension) (fun (a : Fin dimension) => Rat) fun (i : Fin dimension) =>\n            @Semiring.toAddCommMonoid.{0} Rat Rat.semiring)\n          (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)\n          (@Pi.Function.module.{0, 0, 0} (Fin dimension) Rat Rat Rat.semiring\n            (@Semiring.toAddCommMonoid.{0} Rat Rat.semiring) (@Semiring.toModule.{0} Rat Rat.semiring))))\n      (@Module.Basis.equivFun.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n        (@Semiring.toAddCommMonoid.{0} K\n          (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n        (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n          (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)\n        (@Finite.of_fintype.{0} (Fin dimension) (Fin.fintype dimension)) basis)\n      x i"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.fp_division","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic","kind":"theorem","module":"PlanarHom.FixedFieldArithmeticMachines","name":"PlanarHom.FixedFieldArithmetic.fp_division","name_semantics":"Lean export spelling resolves to the canonical name; no second kernel constant","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {dimension : Nat} (basis : Module.Basis (Fin dimension) Rat K),\n  PlanarHom.Complexity.FP\n    ((PlanarHom.Complexity.numberFieldEncoding basis).prod (PlanarHom.Complexity.numberFieldEncoding basis))\n    (PlanarHom.Complexity.numberFieldEncoding basis) fun p => instHDiv.hDiv p.fst p.snd","role":"canonical-export-alias","source_line":77,"source_path":"projects/planar-machines/PlanarHom/FixedFieldArithmeticMachines.lean","source_sha256":"d2d914f281300a63182441d90b2919a20e12301231f94fbf34d92515433fb3e2","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/planar-machines/PlanarHom/FixedFieldArithmeticMachines.lean#L77","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)),\n  @PlanarHom.Complexity.FP (Prod.{0, 0} K K) K\n    (@PlanarHom.Complexity.BitEncoding.prod K K\n      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis) fun (p : Prod.{0, 0} K K) =>\n    @HDiv.hDiv.{0, 0, 0} K K K\n      (@instHDiv.{0} K\n        (@DivInvMonoid.toDiv.{0} K (@DivisionRing.toDivInvMonoid.{0} K (@Field.toDivisionRing.{0} K inst))))\n      (@Prod.fst.{0, 0} K K p) (@Prod.snd.{0, 0} K K p)"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.fp_equality","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic","kind":"theorem","module":"PlanarHom.FixedFieldArithmeticMachines","name":"PlanarHom.FixedFieldArithmetic.fp_equality","name_semantics":"Lean export spelling resolves to the canonical name; no second kernel constant","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {dimension : Nat} (basis : Module.Basis (Fin dimension) Rat K)\n  [inst_2 : DecidableEq K],\n  PlanarHom.Complexity.FP\n    ((PlanarHom.Complexity.numberFieldEncoding basis).prod (PlanarHom.Complexity.numberFieldEncoding basis))\n    PlanarHom.Complexity.BitEncoding.bool fun p => Decidable.decide (Eq p.fst p.snd)","role":"canonical-export-alias","source_line":83,"source_path":"projects/planar-machines/PlanarHom/FixedFieldArithmeticMachines.lean","source_sha256":"d2d914f281300a63182441d90b2919a20e12301231f94fbf34d92515433fb3e2","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/planar-machines/PlanarHom/FixedFieldArithmeticMachines.lean#L83","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1))\n  [inst_2 : DecidableEq.{1} K],\n  @PlanarHom.Complexity.FP (Prod.{0, 0} K K) Bool\n    (@PlanarHom.Complexity.BitEncoding.prod K K\n      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n    PlanarHom.Complexity.BitEncoding.bool fun (p : Prod.{0, 0} K K) =>\n    @Decidable.decide (@Eq.{1} K (@Prod.fst.{0, 0} K K p) (@Prod.snd.{0, 0} K K p))\n      (inst_2 (@Prod.fst.{0, 0} K K p) (@Prod.snd.{0, 0} K K p))"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.fp_inverse","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic","kind":"theorem","module":"PlanarHom.FixedFieldArithmeticMachines","name":"PlanarHom.FixedFieldArithmetic.fp_inverse","name_semantics":"Lean export spelling resolves to the canonical name; no second kernel constant","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {dimension : Nat} (basis : Module.Basis (Fin dimension) Rat K),\n  PlanarHom.Complexity.FP (PlanarHom.Complexity.numberFieldEncoding basis)\n    (PlanarHom.Complexity.numberFieldEncoding basis) fun x => DivisionMonoid.toDivInvOneMonoid.toInvOneClass.inv x","role":"canonical-export-alias","source_line":67,"source_path":"projects/planar-machines/PlanarHom/FixedFieldArithmeticMachines.lean","source_sha256":"d2d914f281300a63182441d90b2919a20e12301231f94fbf34d92515433fb3e2","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/planar-machines/PlanarHom/FixedFieldArithmeticMachines.lean#L67","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)),\n  @PlanarHom.Complexity.FP K K (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis) fun (x : K) =>\n    @Inv.inv.{0} K\n      (@InvOneClass.toInv.{0} K\n        (@DivInvOneMonoid.toInvOneClass.{0} K\n          (@DivisionMonoid.toDivInvOneMonoid.{0} K\n            (@DivisionCommMonoid.toDivisionMonoid.{0} K\n              (@CommGroupWithZero.toDivisionCommMonoid.{0} K\n                (@Semifield.toCommGroupWithZero.{0} K (@Field.toSemifield.{0} K inst)))))))\n      x"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.fp_multiplication","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic","kind":"theorem","module":"PlanarHom.FixedFieldArithmeticMachines","name":"PlanarHom.FixedFieldArithmetic.fp_multiplication","name_semantics":"Lean export spelling resolves to the canonical name; no second kernel constant","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {dimension : Nat} (basis : Module.Basis (Fin dimension) Rat K),\n  PlanarHom.Complexity.FP\n    ((PlanarHom.Complexity.numberFieldEncoding basis).prod (PlanarHom.Complexity.numberFieldEncoding basis))\n    (PlanarHom.Complexity.numberFieldEncoding basis) fun p => instHMul.hMul p.fst p.snd","role":"canonical-export-alias","source_line":54,"source_path":"projects/planar-machines/PlanarHom/FixedFieldArithmeticMachines.lean","source_sha256":"d2d914f281300a63182441d90b2919a20e12301231f94fbf34d92515433fb3e2","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/planar-machines/PlanarHom/FixedFieldArithmeticMachines.lean#L54","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)),\n  @PlanarHom.Complexity.FP (Prod.{0, 0} K K) K\n    (@PlanarHom.Complexity.BitEncoding.prod K K\n      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis) fun (p : Prod.{0, 0} K K) =>\n    @HMul.hMul.{0, 0, 0} K K K\n      (@instHMul.{0} K\n        (@Distrib.toMul.{0} K\n          (@instDistribOfSemiring.{0} K\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))))\n      (@Prod.fst.{0, 0} K K p) (@Prod.snd.{0, 0} K K p)"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.fp_negation","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic","kind":"theorem","module":"PlanarHom.FixedFieldArithmeticMachines","name":"PlanarHom.FixedFieldArithmetic.fp_negation","name_semantics":"Lean export spelling resolves to the canonical name; no second kernel constant","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {dimension : Nat} (basis : Module.Basis (Fin dimension) Rat K),\n  PlanarHom.Complexity.FP (PlanarHom.Complexity.numberFieldEncoding basis)\n    (PlanarHom.Complexity.numberFieldEncoding basis) fun x => SubtractionMonoid.toSubNegZeroMonoid.toNegZeroClass.neg x","role":"canonical-export-alias","source_line":34,"source_path":"projects/planar-machines/PlanarHom/FixedFieldArithmeticMachines.lean","source_sha256":"d2d914f281300a63182441d90b2919a20e12301231f94fbf34d92515433fb3e2","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/planar-machines/PlanarHom/FixedFieldArithmeticMachines.lean#L34","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)),\n  @PlanarHom.Complexity.FP K K (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis) fun (x : K) =>\n    @Neg.neg.{0} K\n      (@NegZeroClass.toNeg.{0} K\n        (@SubNegZeroMonoid.toNegZeroClass.{0} K\n          (@SubtractionMonoid.toSubNegZeroMonoid.{0} K\n            (@SubtractionCommMonoid.toSubtractionMonoid.{0} K\n              (@AddCommGroup.toDivisionAddCommMonoid.{0} K\n                (@Ring.toAddCommGroup.{0} K (@DivisionRing.toRing.{0} K (@Field.toDivisionRing.{0} K inst))))))))\n      x"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.fp_of_coordinates","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic","kind":"theorem","module":"PlanarHom.FixedFieldArithmeticMachines","name":"PlanarHom.FixedFieldArithmetic.fp_of_coordinates","name_semantics":"Lean export spelling resolves to the canonical name; no second kernel constant","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {dimension : Nat} (basis : Module.Basis (Fin dimension) Rat K)\n  {α : Type} (ea : PlanarHom.Complexity.BitEncoding α) (f : α → K),\n  (∀ (i : Fin dimension),\n      PlanarHom.Complexity.FP ea PlanarHom.Complexity.BitEncoding.rat fun a =>\n        EquivLike.toFunLike.coe basis.equivFun (f a) i) →\n    PlanarHom.Complexity.FP ea (PlanarHom.Complexity.numberFieldEncoding basis) f","role":"canonical-export-alias","source_line":20,"source_path":"projects/planar-machines/PlanarHom/FixedFieldArithmeticMachines.lean","source_sha256":"d2d914f281300a63182441d90b2919a20e12301231f94fbf34d92515433fb3e2","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/planar-machines/PlanarHom/FixedFieldArithmeticMachines.lean#L20","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1))\n  {α : Type} (ea : PlanarHom.Complexity.BitEncoding α) (f : α → K)\n  (hf :\n    ∀ (i : Fin dimension),\n      @PlanarHom.Complexity.FP α Rat ea PlanarHom.Complexity.BitEncoding.rat fun (a : α) =>\n        @DFunLike.coe.{1, 1, 1}\n          (@LinearEquiv.{0, 0, 0, 0} Rat Rat Rat.semiring Rat.semiring\n            (@RingHom.id.{0} Rat (@Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))\n            (@RingHom.id.{0} Rat (@Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))\n            (@RingHomInvPair.ids.{0} Rat Rat.semiring) (@RingHomInvPair.ids.{0} Rat Rat.semiring) K\n            (Fin dimension → Rat)\n            (@Semiring.toAddCommMonoid.{0} K\n              (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n            (@Pi.addCommMonoid.{0, 0} (Fin dimension) (fun (a : Fin dimension) => Rat) fun (i : Fin dimension) =>\n              @Semiring.toAddCommMonoid.{0} Rat Rat.semiring)\n            (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n              (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)\n            (@Pi.Function.module.{0, 0, 0} (Fin dimension) Rat Rat Rat.semiring\n              (@Semiring.toAddCommMonoid.{0} Rat Rat.semiring) (@Semiring.toModule.{0} Rat Rat.semiring)))\n          K (fun (x : K) => Fin dimension → Rat)\n          (@EquivLike.toFunLike.{1, 1, 1}\n            (@LinearEquiv.{0, 0, 0, 0} Rat Rat Rat.semiring Rat.semiring\n              (@RingHom.id.{0} Rat (@Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))\n              (@RingHom.id.{0} Rat (@Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))\n              (@RingHomInvPair.ids.{0} Rat Rat.semiring) (@RingHomInvPair.ids.{0} Rat Rat.semiring) K\n              (Fin dimension → Rat)\n              (@Semiring.toAddCommMonoid.{0} K\n                (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n              (@Pi.addCommMonoid.{0, 0} (Fin dimension) (fun (a : Fin dimension) => Rat) fun (i : Fin dimension) =>\n                @Semiring.toAddCommMonoid.{0} Rat Rat.semiring)\n              (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n                (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))\n                inst_1)\n              (@Pi.Function.module.{0, 0, 0} (Fin dimension) Rat Rat Rat.semiring\n                (@Semiring.toAddCommMonoid.{0} Rat Rat.semiring) (@Semiring.toModule.{0} Rat Rat.semiring)))\n            K (Fin dimension → Rat)\n            (@DFinsupp.instEquivLikeLinearEquiv.{0, 0, 0, 0} Rat Rat Rat.semiring Rat.semiring\n              (@RingHom.id.{0} Rat (@Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))\n              (@RingHom.id.{0} Rat (@Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))\n              (@RingHomInvPair.ids.{0} Rat Rat.semiring) (@RingHomInvPair.ids.{0} Rat Rat.semiring) K\n              (Fin dimension → Rat)\n              (@Semiring.toAddCommMonoid.{0} K\n                (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n              (@Pi.addCommMonoid.{0, 0} (Fin dimension) (fun (a : Fin dimension) => Rat) fun (i : Fin dimension) =>\n                @Semiring.toAddCommMonoid.{0} Rat Rat.semiring)\n              (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n                (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))\n                inst_1)\n              (@Pi.Function.module.{0, 0, 0} (Fin dimension) Rat Rat Rat.semiring\n                (@Semiring.toAddCommMonoid.{0} Rat Rat.semiring) (@Semiring.toModule.{0} Rat Rat.semiring))))\n          (@Module.Basis.equivFun.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n            (@Semiring.toAddCommMonoid.{0} K\n              (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n            (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n              (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)\n            (@Finite.of_fintype.{0} (Fin dimension) (Fin.fintype dimension)) basis)\n          (f a) i),\n  @PlanarHom.Complexity.FP α K ea (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis) f"},{"category":"tools","display_name":"Counting.Algorithm.FieldArithmetic.fp_subtraction","family":"arithmetic","import":"Counting.Algorithm.FieldArithmetic","kind":"theorem","module":"PlanarHom.FixedFieldArithmeticMachines","name":"PlanarHom.FixedFieldArithmetic.fp_subtraction","name_semantics":"Lean export spelling resolves to the canonical name; no second kernel constant","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {dimension : Nat} (basis : Module.Basis (Fin dimension) Rat K),\n  PlanarHom.Complexity.FP\n    ((PlanarHom.Complexity.numberFieldEncoding basis).prod (PlanarHom.Complexity.numberFieldEncoding basis))\n    (PlanarHom.Complexity.numberFieldEncoding basis) fun p => instHSub.hSub p.fst p.snd","role":"canonical-export-alias","source_line":39,"source_path":"projects/planar-machines/PlanarHom/FixedFieldArithmeticMachines.lean","source_sha256":"d2d914f281300a63182441d90b2919a20e12301231f94fbf34d92515433fb3e2","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/planar-machines/PlanarHom/FixedFieldArithmeticMachines.lean#L39","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)),\n  @PlanarHom.Complexity.FP (Prod.{0, 0} K K) K\n    (@PlanarHom.Complexity.BitEncoding.prod K K\n      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n      (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n    (@PlanarHom.Complexity.numberFieldEncoding K inst inst_1 dimension basis) fun (p : Prod.{0, 0} K K) =>\n    @HSub.hSub.{0, 0, 0} K K K\n      (@instHSub.{0} K\n        (@SubNegMonoid.toSub.{0} K\n          (@AddGroup.toSubNegMonoid.{0} K\n            (@AddGroupWithOne.toAddGroup.{0} K\n              (@Ring.toAddGroupWithOne.{0} K (@DivisionRing.toRing.{0} K (@Field.toDivisionRing.{0} K inst)))))))\n      (@Prod.fst.{0, 0} K K p) (@Prod.snd.{0, 0} K K p)"},{"category":"core","display_name":"Counting.Algorithm.Holographic.coordinateAction","family":"core-holographic","import":"Counting.Algorithm.Holographic","kind":"definition","module":"Counting.Algorithm.Holographic.Basic","name":"Counting.Algorithm.Holographic.coordinateAction","readable_type":"{D R P : Type} →\n  [Fintype D] →\n    [CommSemiring R] →\n      [Fintype P] → [DecidableEq P] → (P → Counting.Algorithm.Holographic.Kernel D R) → ((P → D) → R) → (P → D) → R","role":"definition","source_line":26,"source_path":"projects/holographic/Counting/Algorithm/Holographic/Basic.lean","source_sha256":"ff296bc5318b0ec3e26fb69f6d7a3b67a67decee25947992b3ccdbda46034043","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holographic/Counting/Algorithm/Holographic/Basic.lean#L26","summary":"The tensor product of the supplied matrices at the ordered port indices.","type":"{D R P : Type} →\n  [Fintype.{0} D] →\n    [CommSemiring.{0} R] →\n      [Fintype.{0} P] →\n        [DecidableEq.{1} P] → (A : P → Counting.Algorithm.Holographic.Kernel D R) → (f : (P → D) → R) → (P → D) → R"},{"category":"core","display_name":"Counting.Algorithm.Holographic.coordinateAction_cancel","family":"core-holographic","import":"Counting.Algorithm.Holographic","kind":"theorem","module":"Counting.Algorithm.Holographic.Basic","name":"Counting.Algorithm.Holographic.coordinateAction_cancel","readable_type":"∀ {D R P : Type} [inst : Fintype D] [inst_1 : DecidableEq D] [inst_2 : CommSemiring R] [inst_3 : Fintype P]\n  [inst_4 : DecidableEq P] (A B : P → Counting.Algorithm.Holographic.Kernel D R),\n  (∀ (j : P), Eq (Matrix.instHMulOfFintypeOfMulOfAddCommMonoid.hMul (A j) (B j)) 1) →\n    ∀ (f : (P → D) → R),\n      Eq (Counting.Algorithm.Holographic.coordinateAction A (Counting.Algorithm.Holographic.coordinateAction B f)) f","role":"theorem","source_line":56,"source_path":"projects/holographic/Counting/Algorithm/Holographic/Basic.lean","source_sha256":"ff296bc5318b0ec3e26fb69f6d7a3b67a67decee25947992b3ccdbda46034043","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holographic/Counting/Algorithm/Holographic/Basic.lean#L56","summary":"Each ordered coordinate may have its own explicitly supplied inverse.","type":"∀ {D R P : Type} [inst : Fintype.{0} D] [inst_1 : DecidableEq.{1} D] [inst_2 : CommSemiring.{0} R]\n  [inst_3 : Fintype.{0} P] [inst_4 : DecidableEq.{1} P] (A B : P → Counting.Algorithm.Holographic.Kernel D R)\n  (hAB :\n    ∀ (j : P),\n      @Eq.{1} (Matrix.{0, 0, 0} D D R)\n        (@HMul.hMul.{0, 0, 0} (Counting.Algorithm.Holographic.Kernel D R) (Counting.Algorithm.Holographic.Kernel D R)\n          (Matrix.{0, 0, 0} D D R)\n          (@Matrix.instHMulOfFintypeOfMulOfAddCommMonoid.{0, 0, 0, 0} D D D R inst\n            (@Distrib.toMul.{0} R (@instDistribOfSemiring.{0} R (@CommSemiring.toSemiring.{0} R inst_2)))\n            (@Semiring.toAddCommMonoid.{0} R (@CommSemiring.toSemiring.{0} R inst_2)))\n          (A j) (B j))\n        (@OfNat.ofNat.{0} (Counting.Algorithm.Holographic.Kernel D R) (nat_lit 1)\n          (@One.toOfNat1.{0} (Counting.Algorithm.Holographic.Kernel D R)\n            (@Matrix.one.{0, 0} D R inst_1\n              (@MulZeroClass.toZero.{0} R (@instMulZeroClassOfSemiring.{0} R (@CommSemiring.toSemiring.{0} R inst_2)))\n              (@AddMonoidWithOne.toOne.{0} R\n                (@AddCommMonoidWithOne.toAddMonoidWithOne.{0} R\n                  (@NonAssocSemiring.toAddCommMonoidWithOne.{0} R\n                    (@Semiring.toNonAssocSemiring.{0} R (@CommSemiring.toSemiring.{0} R inst_2)))))))))\n  (f : (P → D) → R),\n  @Eq.{1} ((P → D) → R)\n    (@Counting.Algorithm.Holographic.coordinateAction D R P inst inst_2 inst_3 inst_4 A\n      (@Counting.Algorithm.Holographic.coordinateAction D R P inst inst_2 inst_3 inst_4 B f))\n    f"},{"category":"core","display_name":"Counting.Algorithm.Holographic.partition_transform","family":"core-holographic","import":"Counting.Algorithm.Holographic","kind":"theorem","module":"Counting.Algorithm.Holographic.Network","name":"Counting.Algorithm.Holographic.partition_transform","readable_type":"∀ {D R B : Type} [inst : Fintype D] [inst_1 : DecidableEq D] [inst_2 : CommSemiring R] [inst_3 : Fintype B]\n  [inst_4 : DecidableEq B] (G : Counting.Model.KernelNetwork D R B) (M N : Counting.Algorithm.Holographic.Kernel D R),\n  Eq (Matrix.instHMulOfFintypeOfMulOfAddCommMonoid.hMul M N) 1 →\n    Eq (Counting.Algorithm.Holographic.transform G M N).toOpenInstance.partition\n      (Counting.Algorithm.Holographic.coordinateAction (fun x => N) G.toOpenInstance.partition)","role":"theorem","source_line":143,"source_path":"projects/holographic/Counting/Algorithm/Holographic/Network.lean","source_sha256":"4083c8523c9549349fa6f27127766b34909cdca3ef97192c83369c15ad859b9c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holographic/Counting/Algorithm/Holographic/Network.lean#L143","summary":"Substantive S1 bridge: both sides are occurrence-list partitions, including one occurrence per original vertex and one per supplied edge kernel.","type":"∀ {D R B : Type} [inst : Fintype.{0} D] [inst_1 : DecidableEq.{1} D] [inst_2 : CommSemiring.{0} R]\n  [inst_3 : Fintype.{0} B] [inst_4 : DecidableEq.{1} B] (G : Counting.Model.KernelNetwork D R B)\n  (M N : Counting.Algorithm.Holographic.Kernel D R)\n  (hMN :\n    @Eq.{1} (Matrix.{0, 0, 0} D D R)\n      (@HMul.hMul.{0, 0, 0} (Counting.Algorithm.Holographic.Kernel D R) (Counting.Algorithm.Holographic.Kernel D R)\n        (Matrix.{0, 0, 0} D D R)\n        (@Matrix.instHMulOfFintypeOfMulOfAddCommMonoid.{0, 0, 0, 0} D D D R inst\n          (@Distrib.toMul.{0} R (@instDistribOfSemiring.{0} R (@CommSemiring.toSemiring.{0} R inst_2)))\n          (@Semiring.toAddCommMonoid.{0} R (@CommSemiring.toSemiring.{0} R inst_2)))\n        M N)\n      (@OfNat.ofNat.{0} (Counting.Algorithm.Holographic.Kernel D R) (nat_lit 1)\n        (@One.toOfNat1.{0} (Counting.Algorithm.Holographic.Kernel D R)\n          (@Matrix.one.{0, 0} D R inst_1\n            (@MulZeroClass.toZero.{0} R (@instMulZeroClassOfSemiring.{0} R (@CommSemiring.toSemiring.{0} R inst_2)))\n            (@AddMonoidWithOne.toOne.{0} R\n              (@AddCommMonoidWithOne.toAddMonoidWithOne.{0} R\n                (@NonAssocSemiring.toAddCommMonoidWithOne.{0} R\n                  (@Semiring.toNonAssocSemiring.{0} R (@CommSemiring.toSemiring.{0} R inst_2))))))))),\n  @Eq.{1} ((a : B → D) → R)\n    (@Counting.Model.OpenInstance.partition D R\n      (Sum.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.vertices B\n            (@Counting.Model.KernelNetwork.shape D R B\n              (@Counting.Algorithm.Holographic.transform D R B inst inst_2 G M N))))\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges B\n            (@Counting.Model.KernelNetwork.shape D R B\n              (@Counting.Algorithm.Holographic.transform D R B inst inst_2 G M N)))))\n      B\n      (Prod.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges B\n            (@Counting.Model.KernelNetwork.shape D R B\n              (@Counting.Algorithm.Holographic.transform D R B inst inst_2 G M N))))\n        Bool)\n      (@Counting.Model.KernelNetwork.language D R B (@Counting.Algorithm.Holographic.transform D R B inst inst_2 G M N))\n      inst_2 inst\n      (@instFintypeProd.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges B\n            (@Counting.Model.KernelNetwork.shape D R B\n              (@Counting.Algorithm.Holographic.transform D R B inst inst_2 G M N))))\n        Bool\n        (Fin.fintype\n          (@Counting.Model.KernelNetworkShape.edges B\n            (@Counting.Model.KernelNetwork.shape D R B\n              (@Counting.Algorithm.Holographic.transform D R B inst inst_2 G M N))))\n        Bool.fintype)\n      (fun\n          (a b :\n            Prod.{0, 0}\n              (Fin\n                (@Counting.Model.KernelNetworkShape.edges B\n                  (@Counting.Model.KernelNetwork.shape D R B\n                    (@Counting.Algorithm.Holographic.transform D R B inst inst_2 G M N))))\n              Bool) =>\n        @instDecidableEqProd.{0, 0}\n          (Fin\n            (@Counting.Model.KernelNetworkShape.edges B\n              (@Counting.Model.KernelNetwork.shape D R B\n                (@Counting.Algorithm.Holographic.transform D R B inst inst_2 G M N))))\n          Bool\n          (instDecidableEqFin\n            (@Counting.Model.KernelNetworkShape.edges B\n              (@Counting.Model.KernelNetwork.shape D R B\n                (@Counting.Algorithm.Holographic.transform D R B inst inst_2 G M N))))\n          instDecidableEqBool a b)\n      (@Counting.Model.KernelNetwork.toOpenInstance D R B\n        (@Counting.Algorithm.Holographic.transform D R B inst inst_2 G M N)))\n    (@Counting.Algorithm.Holographic.coordinateAction D R B inst inst_2 inst_3 inst_4 (fun (x : B) => N)\n      (@Counting.Model.OpenInstance.partition D R\n        (Sum.{0, 0} (Fin (@Counting.Model.KernelNetworkShape.vertices B (@Counting.Model.KernelNetwork.shape D R B G)))\n          (Fin (@Counting.Model.KernelNetworkShape.edges B (@Counting.Model.KernelNetwork.shape D R B G))))\n        B\n        (Prod.{0, 0} (Fin (@Counting.Model.KernelNetworkShape.edges B (@Counting.Model.KernelNetwork.shape D R B G)))\n          Bool)\n        (@Counting.Model.KernelNetwork.language D R B G) inst_2 inst\n        (@instFintypeProd.{0, 0}\n          (Fin (@Counting.Model.KernelNetworkShape.edges B (@Counting.Model.KernelNetwork.shape D R B G))) Bool\n          (Fin.fintype (@Counting.Model.KernelNetworkShape.edges B (@Counting.Model.KernelNetwork.shape D R B G)))\n          Bool.fintype)\n        (fun\n            (a b :\n              Prod.{0, 0}\n                (Fin (@Counting.Model.KernelNetworkShape.edges B (@Counting.Model.KernelNetwork.shape D R B G)))\n                Bool) =>\n          @instDecidableEqProd.{0, 0}\n            (Fin (@Counting.Model.KernelNetworkShape.edges B (@Counting.Model.KernelNetwork.shape D R B G))) Bool\n            (instDecidableEqFin\n              (@Counting.Model.KernelNetworkShape.edges B (@Counting.Model.KernelNetwork.shape D R B G)))\n            instDecidableEqBool a b)\n        (@Counting.Model.KernelNetwork.toOpenInstance D R B G)))"},{"category":"core","display_name":"Counting.Algorithm.Holographic.partition_transform_closed","family":"core-holographic","import":"Counting.Algorithm.Holographic","kind":"theorem","module":"Counting.Algorithm.Holographic.Network","name":"Counting.Algorithm.Holographic.partition_transform_closed","readable_type":"∀ {D R : Type} [inst : Fintype D] [inst_1 : DecidableEq D] [inst_2 : CommSemiring R]\n  (G : Counting.Model.KernelNetwork D R (Fin 0)) (M N : Counting.Algorithm.Holographic.Kernel D R),\n  Eq (Matrix.instHMulOfFintypeOfMulOfAddCommMonoid.hMul M N) 1 →\n    Eq (Counting.Algorithm.Holographic.transform G M N).toOpenInstance.partition G.toOpenInstance.partition","role":"theorem","source_line":159,"source_path":"projects/holographic/Counting/Algorithm/Holographic/Network.lean","source_sha256":"4083c8523c9549349fa6f27127766b34909cdca3ef97192c83369c15ad859b9c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holographic/Counting/Algorithm/Holographic/Network.lean#L159","summary":"Closed partition invariance stated entirely in S1's common occurrence model.","type":"∀ {D R : Type} [inst : Fintype.{0} D] [inst_1 : DecidableEq.{1} D] [inst_2 : CommSemiring.{0} R]\n  (G : Counting.Model.KernelNetwork D R (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))))\n  (M N : Counting.Algorithm.Holographic.Kernel D R)\n  (hMN :\n    @Eq.{1} (Matrix.{0, 0, 0} D D R)\n      (@HMul.hMul.{0, 0, 0} (Counting.Algorithm.Holographic.Kernel D R) (Counting.Algorithm.Holographic.Kernel D R)\n        (Matrix.{0, 0, 0} D D R)\n        (@Matrix.instHMulOfFintypeOfMulOfAddCommMonoid.{0, 0, 0, 0} D D D R inst\n          (@Distrib.toMul.{0} R (@instDistribOfSemiring.{0} R (@CommSemiring.toSemiring.{0} R inst_2)))\n          (@Semiring.toAddCommMonoid.{0} R (@CommSemiring.toSemiring.{0} R inst_2)))\n        M N)\n      (@OfNat.ofNat.{0} (Counting.Algorithm.Holographic.Kernel D R) (nat_lit 1)\n        (@One.toOfNat1.{0} (Counting.Algorithm.Holographic.Kernel D R)\n          (@Matrix.one.{0, 0} D R inst_1\n            (@MulZeroClass.toZero.{0} R (@instMulZeroClassOfSemiring.{0} R (@CommSemiring.toSemiring.{0} R inst_2)))\n            (@AddMonoidWithOne.toOne.{0} R\n              (@AddCommMonoidWithOne.toAddMonoidWithOne.{0} R\n                (@NonAssocSemiring.toAddCommMonoidWithOne.{0} R\n                  (@Semiring.toNonAssocSemiring.{0} R (@CommSemiring.toSemiring.{0} R inst_2))))))))),\n  @Eq.{1} ((a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) → D) → R)\n    (@Counting.Model.OpenInstance.partition D R\n      (Sum.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.vertices\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape D R (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Algorithm.Holographic.transform D R\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) inst inst_2 G M N))))\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape D R (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Algorithm.Holographic.transform D R\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) inst inst_2 G M N)))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n      (Prod.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape D R (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Algorithm.Holographic.transform D R\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) inst inst_2 G M N))))\n        Bool)\n      (@Counting.Model.KernelNetwork.language D R (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n        (@Counting.Algorithm.Holographic.transform D R\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) inst inst_2 G M N))\n      inst_2 inst\n      (@instFintypeProd.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape D R (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Algorithm.Holographic.transform D R\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) inst inst_2 G M N))))\n        Bool\n        (Fin.fintype\n          (@Counting.Model.KernelNetworkShape.edges (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape D R (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Algorithm.Holographic.transform D R\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) inst inst_2 G M N))))\n        Bool.fintype)\n      (fun\n          (a b :\n            Prod.{0, 0}\n              (Fin\n                (@Counting.Model.KernelNetworkShape.edges\n                  (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                  (@Counting.Model.KernelNetwork.shape D R\n                    (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                    (@Counting.Algorithm.Holographic.transform D R\n                      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) inst inst_2 G M N))))\n              Bool) =>\n        @instDecidableEqProd.{0, 0}\n          (Fin\n            (@Counting.Model.KernelNetworkShape.edges\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Model.KernelNetwork.shape D R\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                (@Counting.Algorithm.Holographic.transform D R\n                  (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) inst inst_2 G M N))))\n          Bool\n          (instDecidableEqFin\n            (@Counting.Model.KernelNetworkShape.edges\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Model.KernelNetwork.shape D R\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                (@Counting.Algorithm.Holographic.transform D R\n                  (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) inst inst_2 G M N))))\n          instDecidableEqBool a b)\n      (@Counting.Model.KernelNetwork.toOpenInstance D R\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n        (@Counting.Algorithm.Holographic.transform D R\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) inst inst_2 G M N)))\n    (@Counting.Model.OpenInstance.partition D R\n      (Sum.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.vertices\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape D R (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              G)))\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape D R (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              G))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n      (Prod.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape D R (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              G)))\n        Bool)\n      (@Counting.Model.KernelNetwork.language D R (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) G)\n      inst_2 inst\n      (@instFintypeProd.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape D R (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              G)))\n        Bool\n        (Fin.fintype\n          (@Counting.Model.KernelNetworkShape.edges (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape D R (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              G)))\n        Bool.fintype)\n      (fun\n          (a b :\n            Prod.{0, 0}\n              (Fin\n                (@Counting.Model.KernelNetworkShape.edges\n                  (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                  (@Counting.Model.KernelNetwork.shape D R\n                    (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) G)))\n              Bool) =>\n        @instDecidableEqProd.{0, 0}\n          (Fin\n            (@Counting.Model.KernelNetworkShape.edges\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Model.KernelNetwork.shape D R\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) G)))\n          Bool\n          (instDecidableEqFin\n            (@Counting.Model.KernelNetworkShape.edges\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Model.KernelNetwork.shape D R\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) G)))\n          instDecidableEqBool a b)\n      (@Counting.Model.KernelNetwork.toOpenInstance D R\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) G))"},{"category":"core","display_name":"Counting.Algorithm.Interpolation.measuredRecover","family":"core-interpolation","import":"Counting.Algorithm.Interpolation.Cost","kind":"definition","module":"Counting.Algorithm.Interpolation.Cost","name":"Counting.Algorithm.Interpolation.measuredRecover","readable_type":"{K : Type u_1} →\n  [Field K] →\n    {m : Nat} →\n      (Fin (instHAdd.hAdd m 1) → K) →\n        (Fin (instHAdd.hAdd m 1) → K) → Prod K Counting.Algorithm.Interpolation.Program.Cost","role":"definition","source_line":55,"source_path":"projects/interpolation/Counting/Algorithm/Interpolation/Cost.lean","source_sha256":"00cbeed937ab9e9ed23a41a34dd90ab1f28d4292538520c96adc1951bc4b0f67","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/interpolation/Counting/Algorithm/Interpolation/Cost.lean#L55","summary":"Execute while measuring actual traversed query and arithmetic nodes.","type":"{K : Type u_1} →\n  [Field.{u_1} K] →\n    {m : Nat} →\n      (nodes values :\n          Fin\n              (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) →\n            K) →\n        Prod.{u_1, 0} K Counting.Algorithm.Interpolation.Program.Cost"},{"category":"core","display_name":"Counting.Algorithm.Interpolation.measuredRecover_fieldOps","family":"core-interpolation","import":"Counting.Algorithm.Interpolation.Cost","kind":"theorem","module":"Counting.Algorithm.Interpolation.Cost","name":"Counting.Algorithm.Interpolation.measuredRecover_fieldOps","readable_type":"∀ {K : Type u_1} [inst : Field K] {m : Nat} (nodes values : Fin (instHAdd.hAdd m 1) → K),\n  Eq (Counting.Algorithm.Interpolation.measuredRecover nodes values).snd.fieldOps\n    (instHMul.hMul 2 (instHPow.hPow (instHAdd.hAdd m 1) 2))","role":"theorem","source_line":66,"source_path":"projects/interpolation/Counting/Algorithm/Interpolation/Cost.lean","source_sha256":"00cbeed937ab9e9ed23a41a34dd90ab1f28d4292538520c96adc1951bc4b0f67","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/interpolation/Counting/Algorithm/Interpolation/Cost.lean#L66","summary":"Measuredrecover fieldops.","type":"∀ {K : Type u_1} [inst : Field.{u_1} K] {m : Nat}\n  (nodes values :\n    Fin\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) →\n      K),\n  @Eq.{1} Nat\n    (Counting.Algorithm.Interpolation.Program.Cost.fieldOps\n      (@Prod.snd.{u_1, 0} K Counting.Algorithm.Interpolation.Program.Cost\n        (@Counting.Algorithm.Interpolation.measuredRecover.{u_1} K inst m nodes values)))\n    (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)\n      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))"},{"category":"core","display_name":"Counting.Algorithm.Interpolation.measuredRecover_queries","family":"core-interpolation","import":"Counting.Algorithm.Interpolation.Cost","kind":"theorem","module":"Counting.Algorithm.Interpolation.Cost","name":"Counting.Algorithm.Interpolation.measuredRecover_queries","readable_type":"∀ {K : Type u_1} [inst : Field K] {m : Nat} (nodes values : Fin (instHAdd.hAdd m 1) → K),\n  Eq (Counting.Algorithm.Interpolation.measuredRecover nodes values).snd.queries (instHAdd.hAdd m 1)","role":"theorem","source_line":62,"source_path":"projects/interpolation/Counting/Algorithm/Interpolation/Cost.lean","source_sha256":"00cbeed937ab9e9ed23a41a34dd90ab1f28d4292538520c96adc1951bc4b0f67","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/interpolation/Counting/Algorithm/Interpolation/Cost.lean#L62","summary":"Measuredrecover queries.","type":"∀ {K : Type u_1} [inst : Field.{u_1} K] {m : Nat}\n  (nodes values :\n    Fin\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) →\n      K),\n  @Eq.{1} Nat\n    (Counting.Algorithm.Interpolation.Program.Cost.queries\n      (@Prod.snd.{u_1, 0} K Counting.Algorithm.Interpolation.Program.Cost\n        (@Counting.Algorithm.Interpolation.measuredRecover.{u_1} K inst m nodes values)))\n    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m\n      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))"},{"category":"core","display_name":"Counting.Algorithm.Interpolation.measuredRecover_spec","family":"core-interpolation","import":"Counting.Algorithm.Interpolation.Cost","kind":"theorem","module":"Counting.Algorithm.Interpolation.Cost","name":"Counting.Algorithm.Interpolation.measuredRecover_spec","readable_type":"∀ {K : Type u_1} [inst : Field K] {m : Nat} (nodes : Fin (instHAdd.hAdd m 1) → K),\n  Function.Injective nodes →\n    ∀ (P : Polynomial K),\n      instLENat.le P.natDegree m →\n        And\n          (Eq (Counting.Algorithm.Interpolation.measuredRecover nodes fun i => Polynomial.eval (nodes i) P).fst\n            (Finsupp.instFunLike.coe P.coeff m))\n          (And\n            (Eq\n              (Counting.Algorithm.Interpolation.measuredRecover nodes fun i => Polynomial.eval (nodes i) P).snd.queries\n              (instHAdd.hAdd m 1))\n            (And\n              (Eq\n                (Counting.Algorithm.Interpolation.measuredRecover nodes fun i =>\n                      Polynomial.eval (nodes i) P).snd.fieldOps\n                (instHMul.hMul 2 (instHPow.hPow (instHAdd.hAdd m 1) 2)))\n              (Counting.Algorithm.Interpolation.Program.Safe (fun i => Polynomial.eval (nodes i) P)\n                (Counting.Algorithm.Interpolation.recoveryProgram nodes))))","role":"theorem","source_line":72,"source_path":"projects/interpolation/Counting/Algorithm/Interpolation/Cost.lean","source_sha256":"00cbeed937ab9e9ed23a41a34dd90ab1f28d4292538520c96adc1951bc4b0f67","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/interpolation/Counting/Algorithm/Interpolation/Cost.lean#L72","summary":"One client-facing theorem packages correctness, exact measured cost, and nonzero denominators, without making a bit-time or machine-model claim.","type":"∀ {K : Type u_1} [inst : Field.{u_1} K] {m : Nat}\n  (nodes :\n    Fin\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) →\n      K)\n  (hi :\n    @Function.Injective.{1, u_1 + 1}\n      (Fin\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n      K nodes)\n  (P :\n    @Polynomial.{u_1} K\n      (@CommSemiring.toSemiring.{u_1} K (@Semifield.toCommSemiring.{u_1} K (@Field.toSemifield.{u_1} K inst))))\n  (hP :\n    @LE.le.{0} Nat instLENat\n      (@Polynomial.natDegree.{u_1} K\n        (@CommSemiring.toSemiring.{u_1} K (@Semifield.toCommSemiring.{u_1} K (@Field.toSemifield.{u_1} K inst))) P)\n      m),\n  And\n    (@Eq.{u_1 + 1} K\n      (@Prod.fst.{u_1, 0} K Counting.Algorithm.Interpolation.Program.Cost\n        (@Counting.Algorithm.Interpolation.measuredRecover.{u_1} K inst m nodes\n          fun\n            (i :\n              Fin\n                (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))) =>\n          @Polynomial.eval.{u_1} K\n            (@CommSemiring.toSemiring.{u_1} K (@Semifield.toCommSemiring.{u_1} K (@Field.toSemifield.{u_1} K inst)))\n            (nodes i) P))\n      (@DFunLike.coe.{u_1 + 1, 1, u_1 + 1}\n        (@Finsupp.{0, u_1} Nat K\n          (@MulZeroClass.toZero.{u_1} K\n            (@instMulZeroClassOfSemiring.{u_1} K\n              (@CommSemiring.toSemiring.{u_1} K\n                (@Semifield.toCommSemiring.{u_1} K (@Field.toSemifield.{u_1} K inst))))))\n        Nat (fun (x : Nat) => K)\n        (@Finsupp.instFunLike.{0, u_1} Nat K\n          (@MulZeroClass.toZero.{u_1} K\n            (@instMulZeroClassOfSemiring.{u_1} K\n              (@CommSemiring.toSemiring.{u_1} K\n                (@Semifield.toCommSemiring.{u_1} K (@Field.toSemifield.{u_1} K inst))))))\n        (@Polynomial.coeff.{u_1} K\n          (@CommSemiring.toSemiring.{u_1} K (@Semifield.toCommSemiring.{u_1} K (@Field.toSemifield.{u_1} K inst))) P)\n        m))\n    (And\n      (@Eq.{1} Nat\n        (Counting.Algorithm.Interpolation.Program.Cost.queries\n          (@Prod.snd.{u_1, 0} K Counting.Algorithm.Interpolation.Program.Cost\n            (@Counting.Algorithm.Interpolation.measuredRecover.{u_1} K inst m nodes\n              fun\n                (i :\n                  Fin\n                    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))) =>\n              @Polynomial.eval.{u_1} K\n                (@CommSemiring.toSemiring.{u_1} K (@Semifield.toCommSemiring.{u_1} K (@Field.toSemifield.{u_1} K inst)))\n                (nodes i) P)))\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n      (And\n        (@Eq.{1} Nat\n          (Counting.Algorithm.Interpolation.Program.Cost.fieldOps\n            (@Prod.snd.{u_1, 0} K Counting.Algorithm.Interpolation.Program.Cost\n              (@Counting.Algorithm.Interpolation.measuredRecover.{u_1} K inst m nodes\n                fun\n                  (i :\n                    Fin\n                      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))) =>\n                @Polynomial.eval.{u_1} K\n                  (@CommSemiring.toSemiring.{u_1} K\n                    (@Semifield.toCommSemiring.{u_1} K (@Field.toSemifield.{u_1} K inst)))\n                  (nodes i) P)))\n          (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)\n            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n              (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n              (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))))\n        (@Counting.Algorithm.Interpolation.Program.Safe.{u_1, 0} K\n          (Fin\n            (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n          inst\n          (fun\n              (i :\n                Fin\n                  (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))) =>\n            @Polynomial.eval.{u_1} K\n              (@CommSemiring.toSemiring.{u_1} K (@Semifield.toCommSemiring.{u_1} K (@Field.toSemifield.{u_1} K inst)))\n              (nodes i) P)\n          (@Counting.Algorithm.Interpolation.recoveryProgram.{u_1} K inst m nodes))))"},{"category":"core","display_name":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.bounded_success","family":"core-karp-luby","import":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy","kind":"theorem","module":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy","name":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.bounded_success","readable_type":"∀ {n : Nat} (f : Counting.Algorithm.KarpLuby.DNF.Formula n) (epsilon delta : Rat),\n  Counting.Algorithm.KarpLuby.Program.ValidRequest epsilon delta →\n    Rat.instLE.le (instHSub.hSub 1 delta)\n      (HiddenCircuits.Approximation.SelfReduction.probability fun tape =>\n        Exists fun time =>\n          Exists fun z =>\n            And\n              (instLENat.le time\n                (Polynomial.eval (Counting.Algorithm.KarpLubyRequest.RequestSize.wholeLength f epsilon delta)\n                  Counting.Algorithm.KarpLubyRequest.Whole.costPolynomial))\n              (And\n                (Holant.Complexity.StackProtocol.RunsExactly Counting.Algorithm.KarpLubyRequest.Whole.computer.step\n                  (Turing.initList Counting.Algorithm.KarpLubyRequest.Whole.computer\n                    (Counting.Algorithm.KarpLuby.ProgramEncoding.encodeRun f epsilon delta tape))\n                  (Turing.haltList Counting.Algorithm.KarpLubyRequest.Whole.computer\n                    (Counting.Algorithm.KarpLuby.Encoding.encodeOutput z))\n                  time)\n                (Rat.instLE.le (abs (instHSub.hSub z (Counting.Algorithm.KarpLuby.DNF.modelCount f).cast))\n                  (instHMul.hMul epsilon (Counting.Algorithm.KarpLuby.DNF.modelCount f).cast))))","role":"theorem","source_line":80,"source_path":"projects/karp-luby-request/Counting/Algorithm/KarpLubyRequest/Whole/Accuracy.lean","source_sha256":"8cb7462ade7bbfe6a4258c63f43d4623582dbd965f6277863bdb8fdaaa940c21","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/karp-luby-request/Counting/Algorithm/KarpLubyRequest/Whole/Accuracy.lean#L80","summary":"PAC for actual executions bounded by the same fixed physical-input polynomial. The bound applies to every tape, including unsuccessful estimates.","type":"∀ {n : Nat} (f : Counting.Algorithm.KarpLuby.DNF.Formula n) (epsilon delta : Rat)\n  (hvalid : Counting.Algorithm.KarpLuby.Program.ValidRequest epsilon delta),\n  @LE.le.{0} Rat Rat.instLE\n    (@HSub.hSub.{0, 0, 0} Rat Rat Rat (@instHSub.{0} Rat Rat.instSub)\n      (@OfNat.ofNat.{0} Rat (nat_lit 1) (@Rat.instOfNat (nat_lit 1))) delta)\n    (@HiddenCircuits.Approximation.SelfReduction.probability.{0}\n      (Counting.Algorithm.KarpLuby.CoinTape (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta))\n      (@Pi.instFintype.{0, 0} (Fin (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta))\n        (fun (a : Fin (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta)) => Bool)\n        (instDecidableEqFin (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta))\n        (Fin.fintype (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta))\n        fun (a : Fin (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta)) => Bool.fintype)\n      fun\n        (tape :\n          Counting.Algorithm.KarpLuby.CoinTape\n            (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta)) =>\n      @Exists.{1} Nat fun (time : Nat) =>\n        @Exists.{1} Rat fun (z : Rat) =>\n          And\n            (@LE.le.{0} Nat instLENat time\n              (@Polynomial.eval.{0} Nat Nat.instSemiring\n                (@Counting.Algorithm.KarpLubyRequest.RequestSize.wholeLength n f epsilon delta)\n                Counting.Algorithm.KarpLubyRequest.Whole.costPolynomial))\n            (And\n              (@Holant.Complexity.StackProtocol.RunsExactly\n                (Turing.FinTM2.K Counting.Algorithm.KarpLubyRequest.Whole.computer)\n                (Turing.FinTM2.Λ Counting.Algorithm.KarpLubyRequest.Whole.computer)\n                (Prod.{0, 0}\n                  (Holant.Complexity.BinaryCompose.Machine.State Counting.Algorithm.KarpLubyRequest.Preparation.machine)\n                  (Holant.Complexity.BinaryCompose.Machine.State Counting.Algorithm.KarpLubyRequest.Evaluation.machine))\n                (Turing.FinTM2.step Counting.Algorithm.KarpLubyRequest.Whole.computer)\n                (Turing.initList Counting.Algorithm.KarpLubyRequest.Whole.computer\n                  (@Counting.Algorithm.KarpLuby.ProgramEncoding.encodeRun n f epsilon delta tape))\n                (Turing.haltList Counting.Algorithm.KarpLubyRequest.Whole.computer\n                  (Counting.Algorithm.KarpLuby.Encoding.encodeOutput z))\n                time)\n              (@LE.le.{0} Rat Rat.instLE\n                (@abs.{0} Rat Rat.instLattice Rat.addGroup\n                  (@HSub.hSub.{0, 0, 0} Rat Rat Rat (@instHSub.{0} Rat Rat.instSub) z\n                    (@Nat.cast.{0} Rat Rat.instNatCast (@Counting.Algorithm.KarpLuby.DNF.modelCount n f))))\n                (@HMul.hMul.{0, 0, 0} Rat Rat Rat (@instHMul.{0} Rat Rat.instMul) epsilon\n                  (@Nat.cast.{0} Rat Rat.instNatCast (@Counting.Algorithm.KarpLuby.DNF.modelCount n f))))))"},{"category":"core","display_name":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.parameterized_bit_cost","family":"core-karp-luby","import":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy","kind":"theorem","module":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy","name":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.parameterized_bit_cost","readable_type":"∀ {n : Nat} (f : Counting.Algorithm.KarpLuby.DNF.Formula n) (epsilon delta : Rat),\n  Counting.Algorithm.KarpLuby.Program.ValidRequest epsilon delta →\n    ∀\n      (tape :\n        Counting.Algorithm.KarpLuby.CoinTape (Counting.Algorithm.KarpLuby.Program.requestedBudget f epsilon delta)),\n      Exists fun time =>\n        And\n          (instLENat.le time\n            (Polynomial.eval (Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.parameterSize f epsilon delta)\n              Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.parameterPolynomial))\n          (And\n            (Eq\n              (Holant.Complexity.GraphPreprocessing.Primitive.run\n                  Counting.Algorithm.KarpLubyRequest.Whole.machine.program time\n                  (Option.some\n                    (Turing.initList Counting.Algorithm.KarpLubyRequest.Whole.computer\n                      (Counting.Algorithm.KarpLuby.ProgramEncoding.encodeRun f epsilon delta tape)))).snd\n              (Option.some\n                (Turing.haltList Counting.Algorithm.KarpLubyRequest.Whole.computer\n                  (Counting.Algorithm.KarpLuby.Encoding.encodeOutput\n                    (Counting.Algorithm.KarpLuby.Program.run f epsilon delta tape)))))\n            (instLENat.le\n              (Holant.Complexity.GraphPreprocessing.Primitive.run\n                  Counting.Algorithm.KarpLubyRequest.Whole.machine.program time\n                  (Option.some\n                    (Turing.initList Counting.Algorithm.KarpLubyRequest.Whole.computer\n                      (Counting.Algorithm.KarpLuby.ProgramEncoding.encodeRun f epsilon delta tape)))).fst\n              (Polynomial.eval (Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.parameterSize f epsilon delta)\n                Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.parameterPrimitivePolynomial)))","role":"theorem","source_line":145,"source_path":"projects/karp-luby-request/Counting/Algorithm/KarpLubyRequest/Whole/Accuracy.lean","source_sha256":"8cb7462ade7bbfe6a4258c63f43d4623582dbd965f6277863bdb8fdaaa940c21","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/karp-luby-request/Counting/Algorithm/KarpLubyRequest/Whole/Accuracy.lean#L145","summary":"The same execution has a polynomial bound on actual Primitive instruction cost, including parsing, all transfers and final cleanup.","type":"∀ {n : Nat} (f : Counting.Algorithm.KarpLuby.DNF.Formula n) (epsilon delta : Rat)\n  (hvalid : Counting.Algorithm.KarpLuby.Program.ValidRequest epsilon delta)\n  (tape :\n    Counting.Algorithm.KarpLuby.CoinTape (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta)),\n  @Exists.{1} Nat fun (time : Nat) =>\n    And\n      (@LE.le.{0} Nat instLENat time\n        (@Polynomial.eval.{0} Nat Nat.instSemiring\n          (@Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.parameterSize n f epsilon delta)\n          Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.parameterPolynomial))\n      (And\n        (@Eq.{1}\n          (Option.{0}\n            (Holant.Complexity.GraphPreprocessing.Primitive.Config\n              (Holant.Complexity.BinaryCompose.Machine.K Counting.Algorithm.KarpLubyRequest.Whole.machine)\n              (Holant.Complexity.BinaryCompose.Machine.Label Counting.Algorithm.KarpLubyRequest.Whole.machine)\n              (Holant.Complexity.BinaryCompose.Machine.State Counting.Algorithm.KarpLubyRequest.Whole.machine)))\n          (@Prod.snd.{0, 0} Nat\n            (Option.{0}\n              (Holant.Complexity.GraphPreprocessing.Primitive.Config\n                (Holant.Complexity.BinaryCompose.Machine.K Counting.Algorithm.KarpLubyRequest.Whole.machine)\n                (Holant.Complexity.BinaryCompose.Machine.Label Counting.Algorithm.KarpLubyRequest.Whole.machine)\n                (Holant.Complexity.BinaryCompose.Machine.State Counting.Algorithm.KarpLubyRequest.Whole.machine)))\n            (@Holant.Complexity.GraphPreprocessing.Primitive.run\n              (Holant.Complexity.BinaryCompose.Machine.K Counting.Algorithm.KarpLubyRequest.Whole.machine)\n              (Holant.Complexity.BinaryCompose.Machine.Label Counting.Algorithm.KarpLubyRequest.Whole.machine)\n              (Holant.Complexity.BinaryCompose.Machine.State Counting.Algorithm.KarpLubyRequest.Whole.machine)\n              (Holant.Complexity.BinaryCompose.Machine.decidableK Counting.Algorithm.KarpLubyRequest.Whole.machine)\n              (Holant.Complexity.BinaryCompose.Machine.program Counting.Algorithm.KarpLubyRequest.Whole.machine) time\n              (@Option.some.{0}\n                (Holant.Complexity.GraphPreprocessing.Primitive.Config\n                  (Holant.Complexity.BinaryCompose.Machine.K Counting.Algorithm.KarpLubyRequest.Whole.machine)\n                  (Holant.Complexity.BinaryCompose.Machine.Label Counting.Algorithm.KarpLubyRequest.Whole.machine)\n                  (Holant.Complexity.BinaryCompose.Machine.State Counting.Algorithm.KarpLubyRequest.Whole.machine))\n                (Turing.initList Counting.Algorithm.KarpLubyRequest.Whole.computer\n                  (@Counting.Algorithm.KarpLuby.ProgramEncoding.encodeRun n f epsilon delta tape)))))\n          (@Option.some.{0} (Turing.FinTM2.Cfg Counting.Algorithm.KarpLubyRequest.Whole.computer)\n            (Turing.haltList Counting.Algorithm.KarpLubyRequest.Whole.computer\n              (Counting.Algorithm.KarpLuby.Encoding.encodeOutput\n                (@Counting.Algorithm.KarpLuby.Program.run n f epsilon delta tape)))))\n        (@LE.le.{0} Nat instLENat\n          (@Prod.fst.{0, 0} Nat\n            (Option.{0}\n              (Holant.Complexity.GraphPreprocessing.Primitive.Config\n                (Holant.Complexity.BinaryCompose.Machine.K Counting.Algorithm.KarpLubyRequest.Whole.machine)\n                (Holant.Complexity.BinaryCompose.Machine.Label Counting.Algorithm.KarpLubyRequest.Whole.machine)\n                (Holant.Complexity.BinaryCompose.Machine.State Counting.Algorithm.KarpLubyRequest.Whole.machine)))\n            (@Holant.Complexity.GraphPreprocessing.Primitive.run\n              (Holant.Complexity.BinaryCompose.Machine.K Counting.Algorithm.KarpLubyRequest.Whole.machine)\n              (Holant.Complexity.BinaryCompose.Machine.Label Counting.Algorithm.KarpLubyRequest.Whole.machine)\n              (Holant.Complexity.BinaryCompose.Machine.State Counting.Algorithm.KarpLubyRequest.Whole.machine)\n              (Holant.Complexity.BinaryCompose.Machine.decidableK Counting.Algorithm.KarpLubyRequest.Whole.machine)\n              (Holant.Complexity.BinaryCompose.Machine.program Counting.Algorithm.KarpLubyRequest.Whole.machine) time\n              (@Option.some.{0}\n                (Holant.Complexity.GraphPreprocessing.Primitive.Config\n                  (Holant.Complexity.BinaryCompose.Machine.K Counting.Algorithm.KarpLubyRequest.Whole.machine)\n                  (Holant.Complexity.BinaryCompose.Machine.Label Counting.Algorithm.KarpLubyRequest.Whole.machine)\n                  (Holant.Complexity.BinaryCompose.Machine.State Counting.Algorithm.KarpLubyRequest.Whole.machine))\n                (Turing.initList Counting.Algorithm.KarpLubyRequest.Whole.computer\n                  (@Counting.Algorithm.KarpLuby.ProgramEncoding.encodeRun n f epsilon delta tape)))))\n          (@Polynomial.eval.{0} Nat Nat.instSemiring\n            (@Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.parameterSize n f epsilon delta)\n            Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.parameterPrimitivePolynomial)))"},{"category":"core","display_name":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.parameterized_success","family":"core-karp-luby","import":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy","kind":"theorem","module":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy","name":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.parameterized_success","readable_type":"∀ {n : Nat} (f : Counting.Algorithm.KarpLuby.DNF.Formula n) (epsilon delta : Rat),\n  Counting.Algorithm.KarpLuby.Program.ValidRequest epsilon delta →\n    Rat.instLE.le (instHSub.hSub 1 delta)\n      (HiddenCircuits.Approximation.SelfReduction.probability fun tape =>\n        Exists fun time =>\n          Exists fun z =>\n            And\n              (instLENat.le time\n                (Polynomial.eval (Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.parameterSize f epsilon delta)\n                  Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.parameterPolynomial))\n              (And\n                (Holant.Complexity.StackProtocol.RunsExactly Counting.Algorithm.KarpLubyRequest.Whole.computer.step\n                  (Turing.initList Counting.Algorithm.KarpLubyRequest.Whole.computer\n                    (Counting.Algorithm.KarpLuby.ProgramEncoding.encodeRun f epsilon delta tape))\n                  (Turing.haltList Counting.Algorithm.KarpLubyRequest.Whole.computer\n                    (Counting.Algorithm.KarpLuby.Encoding.encodeOutput z))\n                  time)\n                (Rat.instLE.le (abs (instHSub.hSub z (Counting.Algorithm.KarpLuby.DNF.modelCount f).cast))\n                  (instHMul.hMul epsilon (Counting.Algorithm.KarpLuby.DNF.modelCount f).cast))))","role":"theorem","source_line":164,"source_path":"projects/karp-luby-request/Counting/Algorithm/KarpLubyRequest/Whole/Accuracy.lean","source_sha256":"8cb7462ade7bbfe6a4258c63f43d4623582dbd965f6277863bdb8fdaaa940c21","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/karp-luby-request/Counting/Algorithm/KarpLubyRequest/Whole/Accuracy.lean#L164","summary":"Relative accuracy and actual finite-program time in the same event. Together with `random_bits_le` and `parameterized_bit_cost`, this is the finite-fair-tape FPRAS contract for the original canonical request representation.","type":"∀ {n : Nat} (f : Counting.Algorithm.KarpLuby.DNF.Formula n) (epsilon delta : Rat)\n  (hvalid : Counting.Algorithm.KarpLuby.Program.ValidRequest epsilon delta),\n  @LE.le.{0} Rat Rat.instLE\n    (@HSub.hSub.{0, 0, 0} Rat Rat Rat (@instHSub.{0} Rat Rat.instSub)\n      (@OfNat.ofNat.{0} Rat (nat_lit 1) (@Rat.instOfNat (nat_lit 1))) delta)\n    (@HiddenCircuits.Approximation.SelfReduction.probability.{0}\n      (Counting.Algorithm.KarpLuby.CoinTape (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta))\n      (@Pi.instFintype.{0, 0} (Fin (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta))\n        (fun (a : Fin (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta)) => Bool)\n        (instDecidableEqFin (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta))\n        (Fin.fintype (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta))\n        fun (a : Fin (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta)) => Bool.fintype)\n      fun\n        (tape :\n          Counting.Algorithm.KarpLuby.CoinTape\n            (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta)) =>\n      @Exists.{1} Nat fun (time : Nat) =>\n        @Exists.{1} Rat fun (z : Rat) =>\n          And\n            (@LE.le.{0} Nat instLENat time\n              (@Polynomial.eval.{0} Nat Nat.instSemiring\n                (@Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.parameterSize n f epsilon delta)\n                Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.parameterPolynomial))\n            (And\n              (@Holant.Complexity.StackProtocol.RunsExactly\n                (Turing.FinTM2.K Counting.Algorithm.KarpLubyRequest.Whole.computer)\n                (Turing.FinTM2.Λ Counting.Algorithm.KarpLubyRequest.Whole.computer)\n                (Prod.{0, 0}\n                  (Holant.Complexity.BinaryCompose.Machine.State Counting.Algorithm.KarpLubyRequest.Preparation.machine)\n                  (Holant.Complexity.BinaryCompose.Machine.State Counting.Algorithm.KarpLubyRequest.Evaluation.machine))\n                (Turing.FinTM2.step Counting.Algorithm.KarpLubyRequest.Whole.computer)\n                (Turing.initList Counting.Algorithm.KarpLubyRequest.Whole.computer\n                  (@Counting.Algorithm.KarpLuby.ProgramEncoding.encodeRun n f epsilon delta tape))\n                (Turing.haltList Counting.Algorithm.KarpLubyRequest.Whole.computer\n                  (Counting.Algorithm.KarpLuby.Encoding.encodeOutput z))\n                time)\n              (@LE.le.{0} Rat Rat.instLE\n                (@abs.{0} Rat Rat.instLattice Rat.addGroup\n                  (@HSub.hSub.{0, 0, 0} Rat Rat Rat (@instHSub.{0} Rat Rat.instSub) z\n                    (@Nat.cast.{0} Rat Rat.instNatCast (@Counting.Algorithm.KarpLuby.DNF.modelCount n f))))\n                (@HMul.hMul.{0, 0, 0} Rat Rat Rat (@instHMul.{0} Rat Rat.instMul) epsilon\n                  (@Nat.cast.{0} Rat Rat.instNatCast (@Counting.Algorithm.KarpLuby.DNF.modelCount n f))))))"},{"category":"core","display_name":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.run_on_tape","family":"core-karp-luby","import":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy","kind":"theorem","module":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy","name":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.run_on_tape","readable_type":"∀ {n : Nat} (f : Counting.Algorithm.KarpLuby.DNF.Formula n) (epsilon delta : Rat),\n  Counting.Algorithm.KarpLuby.Program.ValidRequest epsilon delta →\n    ∀\n      (tape :\n        Counting.Algorithm.KarpLuby.CoinTape (Counting.Algorithm.KarpLuby.Program.requestedBudget f epsilon delta)),\n      Exists fun time =>\n        Holant.Complexity.StackProtocol.RunsExactly Counting.Algorithm.KarpLubyRequest.Whole.computer.step\n          (Turing.initList Counting.Algorithm.KarpLubyRequest.Whole.computer\n            (Counting.Algorithm.KarpLuby.ProgramEncoding.encodeRun f epsilon delta tape))\n          (Turing.haltList Counting.Algorithm.KarpLubyRequest.Whole.computer\n            (Counting.Algorithm.KarpLuby.Encoding.encodeOutput\n              (Counting.Algorithm.KarpLuby.Program.run f epsilon delta tape)))\n          time","role":"theorem","source_line":27,"source_path":"projects/karp-luby-request/Counting/Algorithm/KarpLubyRequest/Whole/Accuracy.lean","source_sha256":"8cb7462ade7bbfe6a4258c63f43d4623582dbd965f6277863bdb8fdaaa940c21","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/karp-luby-request/Counting/Algorithm/KarpLubyRequest/Whole/Accuracy.lean#L27","summary":"Every tape executes to the exact rational analyzed by the original PAC theorem. The endpoint clears all non-output stacks and resets finite memory.","type":"∀ {n : Nat} (f : Counting.Algorithm.KarpLuby.DNF.Formula n) (epsilon delta : Rat)\n  (hvalid : Counting.Algorithm.KarpLuby.Program.ValidRequest epsilon delta)\n  (tape :\n    Counting.Algorithm.KarpLuby.CoinTape (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta)),\n  @Exists.{1} Nat fun (time : Nat) =>\n    @Holant.Complexity.StackProtocol.RunsExactly (Turing.FinTM2.K Counting.Algorithm.KarpLubyRequest.Whole.computer)\n      (Turing.FinTM2.Λ Counting.Algorithm.KarpLubyRequest.Whole.computer)\n      (Prod.{0, 0}\n        (Holant.Complexity.BinaryCompose.Machine.State Counting.Algorithm.KarpLubyRequest.Preparation.machine)\n        (Holant.Complexity.BinaryCompose.Machine.State Counting.Algorithm.KarpLubyRequest.Evaluation.machine))\n      (Turing.FinTM2.step Counting.Algorithm.KarpLubyRequest.Whole.computer)\n      (Turing.initList Counting.Algorithm.KarpLubyRequest.Whole.computer\n        (@Counting.Algorithm.KarpLuby.ProgramEncoding.encodeRun n f epsilon delta tape))\n      (Turing.haltList Counting.Algorithm.KarpLubyRequest.Whole.computer\n        (Counting.Algorithm.KarpLuby.Encoding.encodeOutput\n          (@Counting.Algorithm.KarpLuby.Program.run n f epsilon delta tape)))\n      time"},{"category":"core","display_name":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.success","family":"core-karp-luby","import":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy","kind":"theorem","module":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy","name":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.success","readable_type":"∀ {n : Nat} (f : Counting.Algorithm.KarpLuby.DNF.Formula n) (epsilon delta : Rat),\n  Counting.Algorithm.KarpLuby.Program.ValidRequest epsilon delta →\n    Rat.instLE.le (instHSub.hSub 1 delta)\n      (HiddenCircuits.Approximation.SelfReduction.probability fun tape =>\n        Exists fun time =>\n          Exists fun z =>\n            And\n              (Holant.Complexity.StackProtocol.RunsExactly Counting.Algorithm.KarpLubyRequest.Whole.computer.step\n                (Turing.initList Counting.Algorithm.KarpLubyRequest.Whole.computer\n                  (Counting.Algorithm.KarpLuby.ProgramEncoding.encodeRun f epsilon delta tape))\n                (Turing.haltList Counting.Algorithm.KarpLubyRequest.Whole.computer\n                  (Counting.Algorithm.KarpLuby.Encoding.encodeOutput z))\n                time)\n              (Rat.instLE.le (abs (instHSub.hSub z (Counting.Algorithm.KarpLuby.DNF.modelCount f).cast))\n                (instHMul.hMul epsilon (Counting.Algorithm.KarpLuby.DNF.modelCount f).cast)))","role":"theorem","source_line":39,"source_path":"projects/karp-luby-request/Counting/Algorithm/KarpLubyRequest/Whole/Accuracy.lean","source_sha256":"8cb7462ade7bbfe6a4258c63f43d4623582dbd965f6277863bdb8fdaaa940c21","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/karp-luby-request/Counting/Algorithm/KarpLubyRequest/Whole/Accuracy.lean#L39","summary":"At least 1−δ of the original fair tapes yield an actual clean halt within the requested relative-error interval. This statement has no time premise.","type":"∀ {n : Nat} (f : Counting.Algorithm.KarpLuby.DNF.Formula n) (epsilon delta : Rat)\n  (hvalid : Counting.Algorithm.KarpLuby.Program.ValidRequest epsilon delta),\n  @LE.le.{0} Rat Rat.instLE\n    (@HSub.hSub.{0, 0, 0} Rat Rat Rat (@instHSub.{0} Rat Rat.instSub)\n      (@OfNat.ofNat.{0} Rat (nat_lit 1) (@Rat.instOfNat (nat_lit 1))) delta)\n    (@HiddenCircuits.Approximation.SelfReduction.probability.{0}\n      (Counting.Algorithm.KarpLuby.CoinTape (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta))\n      (@Pi.instFintype.{0, 0} (Fin (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta))\n        (fun (a : Fin (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta)) => Bool)\n        (instDecidableEqFin (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta))\n        (Fin.fintype (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta))\n        fun (a : Fin (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta)) => Bool.fintype)\n      fun\n        (tape :\n          Counting.Algorithm.KarpLuby.CoinTape\n            (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta)) =>\n      @Exists.{1} Nat fun (time : Nat) =>\n        @Exists.{1} Rat fun (z : Rat) =>\n          And\n            (@Holant.Complexity.StackProtocol.RunsExactly\n              (Turing.FinTM2.K Counting.Algorithm.KarpLubyRequest.Whole.computer)\n              (Turing.FinTM2.Λ Counting.Algorithm.KarpLubyRequest.Whole.computer)\n              (Prod.{0, 0}\n                (Holant.Complexity.BinaryCompose.Machine.State Counting.Algorithm.KarpLubyRequest.Preparation.machine)\n                (Holant.Complexity.BinaryCompose.Machine.State Counting.Algorithm.KarpLubyRequest.Evaluation.machine))\n              (Turing.FinTM2.step Counting.Algorithm.KarpLubyRequest.Whole.computer)\n              (Turing.initList Counting.Algorithm.KarpLubyRequest.Whole.computer\n                (@Counting.Algorithm.KarpLuby.ProgramEncoding.encodeRun n f epsilon delta tape))\n              (Turing.haltList Counting.Algorithm.KarpLubyRequest.Whole.computer\n                (Counting.Algorithm.KarpLuby.Encoding.encodeOutput z))\n              time)\n            (@LE.le.{0} Rat Rat.instLE\n              (@abs.{0} Rat Rat.instLattice Rat.addGroup\n                (@HSub.hSub.{0, 0, 0} Rat Rat Rat (@instHSub.{0} Rat Rat.instSub) z\n                  (@Nat.cast.{0} Rat Rat.instNatCast (@Counting.Algorithm.KarpLuby.DNF.modelCount n f))))\n              (@HMul.hMul.{0, 0, 0} Rat Rat Rat (@instHMul.{0} Rat Rat.instMul) epsilon\n                (@Nat.cast.{0} Rat Rat.instNatCast (@Counting.Algorithm.KarpLuby.DNF.modelCount n f)))))"},{"category":"core","display_name":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.zero","family":"core-karp-luby","import":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy","kind":"theorem","module":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy","name":"Counting.Algorithm.KarpLubyRequest.Whole.Accuracy.zero","readable_type":"∀ {n : Nat} (f : Counting.Algorithm.KarpLuby.DNF.Formula n) (epsilon delta : Rat),\n  Counting.Algorithm.KarpLuby.Program.ValidRequest epsilon delta →\n    Eq (Counting.Algorithm.KarpLuby.DNF.modelCount f) 0 →\n      ∀\n        (tape :\n          Counting.Algorithm.KarpLuby.CoinTape (Counting.Algorithm.KarpLuby.Program.requestedBudget f epsilon delta)),\n        Exists fun time =>\n          Holant.Complexity.StackProtocol.RunsExactly Counting.Algorithm.KarpLubyRequest.Whole.computer.step\n            (Turing.initList Counting.Algorithm.KarpLubyRequest.Whole.computer\n              (Counting.Algorithm.KarpLuby.ProgramEncoding.encodeRun f epsilon delta tape))\n            (Turing.haltList Counting.Algorithm.KarpLubyRequest.Whole.computer\n              (Counting.Algorithm.KarpLuby.Encoding.encodeOutput 0))\n            time","role":"theorem","source_line":54,"source_path":"projects/karp-luby-request/Counting/Algorithm/KarpLubyRequest/Whole/Accuracy.lean","source_sha256":"8cb7462ade7bbfe6a4258c63f43d4623582dbd965f6277863bdb8fdaaa940c21","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/karp-luby-request/Counting/Algorithm/KarpLubyRequest/Whole/Accuracy.lean#L54","summary":"Zero target counts are exact on every tape of the original budget.","type":"∀ {n : Nat} (f : Counting.Algorithm.KarpLuby.DNF.Formula n) (epsilon delta : Rat)\n  (hvalid : Counting.Algorithm.KarpLuby.Program.ValidRequest epsilon delta)\n  (hz :\n    @Eq.{1} Nat (@Counting.Algorithm.KarpLuby.DNF.modelCount n f)\n      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n  (tape :\n    Counting.Algorithm.KarpLuby.CoinTape (@Counting.Algorithm.KarpLuby.Program.requestedBudget n f epsilon delta)),\n  @Exists.{1} Nat fun (time : Nat) =>\n    @Holant.Complexity.StackProtocol.RunsExactly (Turing.FinTM2.K Counting.Algorithm.KarpLubyRequest.Whole.computer)\n      (Turing.FinTM2.Λ Counting.Algorithm.KarpLubyRequest.Whole.computer)\n      (Prod.{0, 0}\n        (Holant.Complexity.BinaryCompose.Machine.State Counting.Algorithm.KarpLubyRequest.Preparation.machine)\n        (Holant.Complexity.BinaryCompose.Machine.State Counting.Algorithm.KarpLubyRequest.Evaluation.machine))\n      (Turing.FinTM2.step Counting.Algorithm.KarpLubyRequest.Whole.computer)\n      (Turing.initList Counting.Algorithm.KarpLubyRequest.Whole.computer\n        (@Counting.Algorithm.KarpLuby.ProgramEncoding.encodeRun n f epsilon delta tape))\n      (Turing.haltList Counting.Algorithm.KarpLubyRequest.Whole.computer\n        (Counting.Algorithm.KarpLuby.Encoding.encodeOutput\n          (@OfNat.ofNat.{0} Rat (nat_lit 0) (@Rat.instOfNat (nat_lit 0)))))\n      time"},{"category":"core","display_name":"Counting.Algorithm.PfaffianFinite.certified_evaluateGrid","family":"core-pfaffian","import":"Counting.Algorithm.PfaffianFinite","kind":"theorem","module":"Counting.Algorithm.PfaffianFinite","name":"Counting.Algorithm.PfaffianFinite.certified_evaluateGrid","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] [inst_2 : DecidableEq K] {dimension : Nat}\n  (basis : Module.Basis (Fin dimension) Rat K),\n  And\n    (Counting.Computation.InFP (Counting.Algorithm.Pfaffian.gridEncoding basis).toFinEncoding\n      (PfaffianPort.Complexity.numberFieldEncoding basis).toFinEncoding Counting.Algorithm.Pfaffian.evaluateGrid)\n    (∀ {n : Nat} (A : Matrix (Fin n) (Fin n) K),\n      (∀ (i j : Fin n), Eq (A j i) (SubtractionMonoid.toSubNegZeroMonoid.toNegZeroClass.neg (A i j))) →\n        (∀ (i : Fin n), Eq (A i i) 0) →\n          Eq (Counting.Algorithm.Pfaffian.evaluateGrid (Counting.Algorithm.Pfaffian.matrixRows A))\n            (Counting.Algorithm.Pfaffian.pairingPfaffian A))","role":"theorem","source_line":94,"source_path":"projects/pfaffian-finite/Counting/Algorithm/PfaffianFinite.lean","source_sha256":"f04a08b05e4c00dd8d902f269b3e8e0498a0ce9fb90fd7a0163b6006c55b0b50","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/pfaffian-finite/Counting/Algorithm/PfaffianFinite.lean#L94","summary":"The finite-machine endpoint and the existing independent signed-pairing correctness theorem, including empty and odd orders.","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  [inst_2 : DecidableEq.{1} K] {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)),\n  And\n    (@Counting.Computation.InFP (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool Bool.fintype Bool.fintype\n      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n      (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2))\n    (∀ {n : Nat} (A : Matrix.{0, 0, 0} (Fin n) (Fin n) K),\n      (∀ (i j : Fin n),\n          @Eq.{1} K (A j i)\n            (@Neg.neg.{0} K\n              (@NegZeroClass.toNeg.{0} K\n                (@SubNegZeroMonoid.toNegZeroClass.{0} K\n                  (@SubtractionMonoid.toSubNegZeroMonoid.{0} K\n                    (@SubtractionCommMonoid.toSubtractionMonoid.{0} K\n                      (@AddCommGroup.toDivisionAddCommMonoid.{0} K\n                        (@Ring.toAddCommGroup.{0} K\n                          (@DivisionRing.toRing.{0} K (@Field.toDivisionRing.{0} K inst))))))))\n              (A i j))) →\n        (∀ (i : Fin n),\n            @Eq.{1} K (A i i)\n              (@OfNat.ofNat.{0} K (nat_lit 0)\n                (@Zero.toOfNat0.{0} K\n                  (@MulZeroClass.toZero.{0} K\n                    (@instMulZeroClassOfSemiring.{0} K\n                      (@CommSemiring.toSemiring.{0} K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))))))) →\n          @Eq.{1} K\n            (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2 (@Counting.Algorithm.Pfaffian.matrixRows K n A))\n            (@Counting.Algorithm.Pfaffian.pairingPfaffian.{0, 0} (Fin n) K (@Fin.instLinearOrder n) (Fin.fintype n)\n              (@Field.toCommRing.{0} K inst) A))"},{"category":"core","display_name":"Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime","family":"core-pfaffian","import":"Counting.Algorithm.PfaffianFinite","kind":"definition","module":"Counting.Algorithm.PfaffianFinite","name":"Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime","readable_type":"{K : Type} →\n  [inst : Field K] →\n    [inst_1 : Algebra Rat K] →\n      [inst_2 : DecidableEq K] →\n        {dimension : Nat} →\n          (basis : Module.Basis (Fin dimension) Rat K) →\n            Counting.Computation.PolyTime (Counting.Algorithm.Pfaffian.gridEncoding basis).toFinEncoding\n              (PfaffianPort.Complexity.numberFieldEncoding basis).toFinEncoding Counting.Algorithm.Pfaffian.evaluateGrid","role":"definition","source_line":47,"source_path":"projects/pfaffian-finite/Counting/Algorithm/PfaffianFinite.lean","source_sha256":"f04a08b05e4c00dd8d902f269b3e8e0498a0ce9fb90fd7a0163b6006c55b0b50","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/pfaffian-finite/Counting/Algorithm/PfaffianFinite.lean#L47","summary":"The same certified machine under F1's faithful-codec interface.","type":"{K : Type} →\n  [inst : Field.{0} K] →\n    [inst_1 :\n        @Algebra.{0, 0} Rat K Rat.commSemiring\n          (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))] →\n      [inst_2 : DecidableEq.{1} K] →\n        {dimension : Nat} →\n          (basis :\n              @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n                (@Semiring.toAddCommMonoid.{0} K\n                  (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n                (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n                  (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))\n                  inst_1)) →\n            @Counting.Computation.PolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool Bool.fintype Bool.fintype\n              (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n              (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n              (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)"},{"category":"core","display_name":"Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime_steps","family":"core-pfaffian","import":"Counting.Algorithm.PfaffianFinite","kind":"theorem","module":"Counting.Algorithm.PfaffianFinite","name":"Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime_steps","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] [inst_2 : DecidableEq K] {dimension : Nat}\n  (basis : Module.Basis (Fin dimension) Rat K) (g : Counting.Algorithm.Pfaffian.Grid K),\n  Eq ((Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime basis).outputsFun g).steps\n    ((Counting.Algorithm.PfaffianFinite.sourceComputer basis).outputsFun g).steps","role":"theorem","source_line":71,"source_path":"projects/pfaffian-finite/Counting/Algorithm/PfaffianFinite.lean","source_sha256":"f04a08b05e4c00dd8d902f269b3e8e0498a0ce9fb90fd7a0163b6006c55b0b50","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/pfaffian-finite/Counting/Algorithm/PfaffianFinite.lean#L71","summary":"Evaluategridpolytime steps.","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  [inst_2 : DecidableEq.{1} K] {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1))\n  (g : Counting.Algorithm.Pfaffian.Grid K),\n  @Eq.{1} Nat\n    (@StateTransition.EvalsTo.steps.{0}\n      (Turing.FinTM2.Cfg\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n            (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n              (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n            (@Computability.Encoding.encode.{0, 0} K Bool\n              (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n            (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n              Bool.fintype Bool.fintype\n              (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n              (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n              (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n              (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis)))))\n      (Turing.FinTM2.step\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n            (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n              (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n            (@Computability.Encoding.encode.{0, 0} K Bool\n              (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n            (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n              Bool.fintype Bool.fintype\n              (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n              (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n              (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n              (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis)))))\n      (Turing.initList\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n            (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n              (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n            (@Computability.Encoding.encode.{0, 0} K Bool\n              (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n            (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n              Bool.fintype Bool.fintype\n              (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n              (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n              (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n              (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis))))\n        (@List.map.{0, 0} Bool\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                  (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                    (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                (@Computability.Encoding.encode.{0, 0} K Bool\n                  (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                    (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  Bool.fintype Bool.fintype\n                  (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                    (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                  (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                    (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis))))\n            (Turing.FinTM2.k₀\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                    Bool Bool.fintype Bool.fintype\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis))))))\n          (@Equiv.invFun.{1, 1}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                    Bool Bool.fintype Bool.fintype\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis))))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                      Bool Bool.fintype Bool.fintype\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                      (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                      (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension\n                        basis))))))\n            Bool\n            (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                  (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                    (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                (@Computability.Encoding.encode.{0, 0} K Bool\n                  (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                    (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  Bool.fintype Bool.fintype\n                  (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                    (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                  (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                    (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis)))))\n          (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n            (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n              (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n            g)))\n      (@Option.map.{0, 0}\n        (List.{0}\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                  (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                    (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                (@Computability.Encoding.encode.{0, 0} K Bool\n                  (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                    (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  Bool.fintype Bool.fintype\n                  (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                    (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                  (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                    (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis))))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                    Bool Bool.fintype Bool.fintype\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis)))))))\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                  (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                  (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n              (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                Bool.fintype Bool.fintype\n                (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                  (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                  (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis)))))\n        (Turing.haltList\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                  (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                  (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n              (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                Bool.fintype Bool.fintype\n                (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                  (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                  (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis)))))\n        (@Option.some.{0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                    Bool Bool.fintype Bool.fintype\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                      Bool Bool.fintype Bool.fintype\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                      (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                      (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension\n                        basis)))))))\n          (@List.map.{0, 0} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                    Bool Bool.fintype Bool.fintype\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                      Bool Bool.fintype Bool.fintype\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                      (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                      (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension\n                        basis))))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                      Bool Bool.fintype Bool.fintype\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                      (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                      (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                        (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                          (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                          (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                      (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                        Bool Bool.fintype Bool.fintype\n                        (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                          (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                        (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                          (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                        (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                        (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension\n                          basis))))))\n              Bool\n              (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                    Bool Bool.fintype Bool.fintype\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis)))))\n            (@Computability.Encoding.encode.{0, 0} K Bool\n              (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n              (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2 g)))))\n      (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                  (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                  (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n              (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                Bool.fintype Bool.fintype\n                (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                  (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                  (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis)))))\n        (Turing.FinTM2.step\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                  (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                  (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n              (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                Bool.fintype Bool.fintype\n                (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                  (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                  (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis)))))\n        (Turing.initList\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                  (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                  (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n              (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                Bool.fintype Bool.fintype\n                (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                  (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                  (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis))))\n          (@List.map.{0, 0} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                    Bool Bool.fintype Bool.fintype\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis))))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                      Bool Bool.fintype Bool.fintype\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                      (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                      (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension\n                        basis))))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                      Bool Bool.fintype Bool.fintype\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                      (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                      (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis))))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                        (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                          (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                          (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                      (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                        Bool Bool.fintype Bool.fintype\n                        (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                          (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                        (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                          (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                        (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                        (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension\n                          basis))))))\n              Bool\n              (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                    Bool Bool.fintype Bool.fintype\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis)))))\n            (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n              (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n              g)))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                    Bool Bool.fintype Bool.fintype\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                      Bool Bool.fintype Bool.fintype\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                      (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                      (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension\n                        basis)))))))\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                  (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                    (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                (@Computability.Encoding.encode.{0, 0} K Bool\n                  (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                    (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  Bool.fintype Bool.fintype\n                  (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                    (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                  (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                    (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis)))))\n          (Turing.haltList\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                  (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                    (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                (@Computability.Encoding.encode.{0, 0} K Bool\n                  (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                    (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  Bool.fintype Bool.fintype\n                  (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                    (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                  (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                    (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis)))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                      Bool Bool.fintype Bool.fintype\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                      (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                      (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                        (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                          (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                          (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                      (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                        Bool Bool.fintype Bool.fintype\n                        (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                          (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                        (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                          (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                        (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                        (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension\n                          basis)))))))\n            (@List.map.{0, 0} Bool\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                      Bool Bool.fintype Bool.fintype\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                      (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                      (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                        (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                          (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                          (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                      (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                        Bool Bool.fintype Bool.fintype\n                        (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                          (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                        (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                          (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                        (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                        (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension\n                          basis))))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                      (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                        (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                          (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                      (@Computability.Encoding.encode.{0, 0} K Bool\n                        (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                          (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                      (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                        Bool Bool.fintype Bool.fintype\n                        (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                          (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                        (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                          (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                        (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                        (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension\n                          basis))))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                        Bool\n                        (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                          (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                            (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                        (@Computability.Encoding.encode.{0, 0} K Bool\n                          (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                            (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                        (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K\n                          Bool Bool Bool.fintype Bool.fintype\n                          (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                            (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                          (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                            (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                          (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                          (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension\n                            basis))))))\n                Bool\n                (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                    (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n                    (@Computability.Encoding.encode.{0, 0} K Bool\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                      Bool Bool.fintype Bool.fintype\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                      (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                      (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                      (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis)))))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                  (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2 g)))))\n        (@Polynomial.eval.{0} Nat Nat.instSemiring\n          (@List.length.{0} Bool\n            (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n              (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n              g))\n          (@Turing.TM2ComputableInPolyTime.time (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n            (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n              (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n            (@Computability.Encoding.encode.{0, 0} K Bool\n              (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n            (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n              Bool.fintype Bool.fintype\n              (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n                (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n              (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n                (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n              (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n              (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis))))\n        (@Turing.TM2ComputableInPolyTime.outputsFun (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n          (@Computability.Encoding.encode.{0, 0} (Counting.Algorithm.Pfaffian.Grid K) Bool\n            (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n              (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis)))\n          (@Computability.Encoding.encode.{0, 0} K Bool\n            (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n              (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)))\n          (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n            Bool.fintype Bool.fintype\n            (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n              (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n            (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n              (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n            (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n            (@Counting.Algorithm.PfaffianFinite.evaluateGridPolyTime K inst inst_1 inst_2 dimension basis))\n          g)))\n    (@StateTransition.EvalsTo.steps.{0}\n      (Turing.FinTM2.Cfg\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n            (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n              (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n            (@PfaffianPort.Complexity.BitEncoding.encode K\n              (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n            (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n            (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis))))\n      (Turing.FinTM2.step\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n            (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n              (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n            (@PfaffianPort.Complexity.BitEncoding.encode K\n              (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n            (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n            (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis))))\n      (Turing.initList\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n            (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n              (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n            (@PfaffianPort.Complexity.BitEncoding.encode K\n              (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n            (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n            (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))\n        (@List.map.{0, 0} Bool\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                  (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                (@PfaffianPort.Complexity.BitEncoding.encode K\n                  (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))\n            (Turing.FinTM2.k₀\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                    (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                  (@PfaffianPort.Complexity.BitEncoding.encode K\n                    (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))))\n          (@Equiv.invFun.{1, 1}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                    (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                  (@PfaffianPort.Complexity.BitEncoding.encode K\n                    (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                    (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                    (@PfaffianPort.Complexity.BitEncoding.encode K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))))\n            Bool\n            (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                  (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                (@PfaffianPort.Complexity.BitEncoding.encode K\n                  (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis))))\n          (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n            (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis) g)))\n      (@Option.map.{0, 0}\n        (List.{0}\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                  (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                (@PfaffianPort.Complexity.BitEncoding.encode K\n                  (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                    (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                  (@PfaffianPort.Complexity.BitEncoding.encode K\n                    (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis))))))\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n              (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n              (@PfaffianPort.Complexity.BitEncoding.encode K\n                (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n              (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n              (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis))))\n        (Turing.haltList\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n              (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n              (@PfaffianPort.Complexity.BitEncoding.encode K\n                (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n              (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n              (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis))))\n        (@Option.some.{0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                    (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                  (@PfaffianPort.Complexity.BitEncoding.encode K\n                    (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                    (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                    (@PfaffianPort.Complexity.BitEncoding.encode K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis))))))\n          (@List.map.{0, 0} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                    (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                  (@PfaffianPort.Complexity.BitEncoding.encode K\n                    (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                    (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                    (@PfaffianPort.Complexity.BitEncoding.encode K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                    (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                    (@PfaffianPort.Complexity.BitEncoding.encode K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                      (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                      (@PfaffianPort.Complexity.BitEncoding.encode K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                      (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                      (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))))\n              Bool\n              (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                    (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                  (@PfaffianPort.Complexity.BitEncoding.encode K\n                    (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis))))\n            (@PfaffianPort.Complexity.BitEncoding.encode K\n              (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n              (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2 g)))))\n      (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n              (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n              (@PfaffianPort.Complexity.BitEncoding.encode K\n                (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n              (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n              (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis))))\n        (Turing.FinTM2.step\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n              (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n              (@PfaffianPort.Complexity.BitEncoding.encode K\n                (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n              (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n              (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis))))\n        (Turing.initList\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n              (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n              (@PfaffianPort.Complexity.BitEncoding.encode K\n                (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n              (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n              (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))\n          (@List.map.{0, 0} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                    (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                  (@PfaffianPort.Complexity.BitEncoding.encode K\n                    (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                    (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                    (@PfaffianPort.Complexity.BitEncoding.encode K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                    (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                    (@PfaffianPort.Complexity.BitEncoding.encode K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                      (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                      (@PfaffianPort.Complexity.BitEncoding.encode K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                      (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                      (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))))\n              Bool\n              (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                    (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                  (@PfaffianPort.Complexity.BitEncoding.encode K\n                    (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis))))\n            (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n              (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis) g)))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                  (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                    (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                  (@PfaffianPort.Complexity.BitEncoding.encode K\n                    (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                  (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                  (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                    (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                    (@PfaffianPort.Complexity.BitEncoding.encode K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis))))))\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                  (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                (@PfaffianPort.Complexity.BitEncoding.encode K\n                  (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis))))\n          (Turing.haltList\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                  (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                (@PfaffianPort.Complexity.BitEncoding.encode K\n                  (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                    (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                    (@PfaffianPort.Complexity.BitEncoding.encode K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                      (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                      (@PfaffianPort.Complexity.BitEncoding.encode K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                      (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                      (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis))))))\n            (@List.map.{0, 0} Bool\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                    (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                    (@PfaffianPort.Complexity.BitEncoding.encode K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                      (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                      (@PfaffianPort.Complexity.BitEncoding.encode K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                      (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                      (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                      (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                        (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                      (@PfaffianPort.Complexity.BitEncoding.encode K\n                        (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                      (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                      (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool\n                        Bool\n                        (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                          (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                        (@PfaffianPort.Complexity.BitEncoding.encode K\n                          (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                        (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                        (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))))\n                Bool\n                (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n                    (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n                      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n                    (@PfaffianPort.Complexity.BitEncoding.encode K\n                      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n                    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n                    (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis))))\n              (@PfaffianPort.Complexity.BitEncoding.encode K\n                (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis)\n                (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2 g)))))\n        (@Polynomial.eval.{0} Nat Nat.instSemiring\n          (@List.length.{0} Bool\n            (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n              (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis) g))\n          (@Turing.TM2ComputableInPolyTime.time (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n            (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n              (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n            (@PfaffianPort.Complexity.BitEncoding.encode K\n              (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n            (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n            (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis)))\n        (@Turing.TM2ComputableInPolyTime.outputsFun (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool\n          (@PfaffianPort.Complexity.BitEncoding.encode (Counting.Algorithm.Pfaffian.Grid K)\n            (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n          (@PfaffianPort.Complexity.BitEncoding.encode K\n            (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n          (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)\n          (@Counting.Algorithm.PfaffianFinite.sourceComputer K inst inst_1 inst_2 dimension basis) g)))"},{"category":"core","display_name":"Counting.Algorithm.PfaffianFinite.evaluateGrid_inFP","family":"core-pfaffian","import":"Counting.Algorithm.PfaffianFinite","kind":"theorem","module":"Counting.Algorithm.PfaffianFinite","name":"Counting.Algorithm.PfaffianFinite.evaluateGrid_inFP","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] [inst_2 : DecidableEq K] {dimension : Nat}\n  (basis : Module.Basis (Fin dimension) Rat K),\n  Counting.Computation.InFP (Counting.Algorithm.Pfaffian.gridEncoding basis).toFinEncoding\n    (PfaffianPort.Complexity.numberFieldEncoding basis).toFinEncoding Counting.Algorithm.Pfaffian.evaluateGrid","role":"theorem","source_line":86,"source_path":"projects/pfaffian-finite/Counting/Algorithm/PfaffianFinite.lean","source_sha256":"f04a08b05e4c00dd8d902f269b3e8e0498a0ce9fb90fd7a0163b6006c55b0b50","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/pfaffian-finite/Counting/Algorithm/PfaffianFinite.lean#L86","summary":"Full F1 membership for varying matrix order over the fixed represented field.","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  [inst_2 : DecidableEq.{1} K] {dimension : Nat}\n  (basis :\n    @Module.Basis.{0, 0, 0} (Fin dimension) Rat K Rat.semiring\n      (@Semiring.toAddCommMonoid.{0} K\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))))\n      (@Algebra.toModule.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))) inst_1)),\n  @Counting.Computation.InFP (Counting.Algorithm.Pfaffian.Grid K) K Bool Bool Bool.fintype Bool.fintype\n    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding (Counting.Algorithm.Pfaffian.Grid K)\n      (@Counting.Algorithm.Pfaffian.gridEncoding K inst inst_1 dimension basis))\n    (@PfaffianPort.Complexity.BitEncoding.toFinEncoding K\n      (@PfaffianPort.Complexity.numberFieldEncoding K inst inst_1 dimension basis))\n    (@Counting.Algorithm.Pfaffian.evaluateGrid K inst inst_2)"},{"category":"core","display_name":"Counting.Algorithm.Product.Instance","family":"core-product","import":"Counting.Algorithm.Product","kind":"inductive","module":"Counting.Algorithm.Product.Input","name":"Counting.Algorithm.Product.Instance","readable_type":"(K : Type) → [CommSemiring K] → Type","role":"inductive","source_line":41,"source_path":"projects/product-algorithm/Counting/Algorithm/Product/Input.lean","source_sha256":"f3378943fe0294392f9e0e2fed6bf786eac532adbf672119733350f9494b9955","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-algorithm/Counting/Algorithm/Product/Input.lean#L41","summary":"A closed product instance. A list retains occurrence multiplicities and the variable count retains isolated variables.","type":"(K : Type) → [CommSemiring.{0} K] → Type"},{"category":"core","display_name":"Counting.Algorithm.Product.evaluate","family":"core-product","import":"Counting.Algorithm.Product","kind":"definition","module":"Counting.Algorithm.Product.Evaluation","name":"Counting.Algorithm.Product.evaluate","readable_type":"{K : Type} → [inst : CommSemiring K] → Counting.Algorithm.Product.Instance K → K","role":"definition","source_line":66,"source_path":"projects/product-algorithm/Counting/Algorithm/Product/Evaluation.lean","source_sha256":"e1829a6873bef3b704f4a3e17920193233e9affad9c2375ee7f5e2f9dd9909df","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-algorithm/Counting/Algorithm/Product/Evaluation.lean#L66","summary":"The existing single-recursion elimination applied to the compiled input.","type":"{K : Type} → [inst : CommSemiring.{0} K] → (I : @Counting.Algorithm.Product.Instance K inst) → K"},{"category":"core","display_name":"Counting.Algorithm.Product.evaluate_eq_partition","family":"core-product","import":"Counting.Algorithm.Product","kind":"theorem","module":"Counting.Algorithm.Product.Evaluation","name":"Counting.Algorithm.Product.evaluate_eq_partition","readable_type":"∀ {K : Type} [inst : CommSemiring K] (I : Counting.Algorithm.Product.Instance K),\n  Eq (Counting.Algorithm.Product.evaluate I) I.partition","role":"theorem","source_line":74,"source_path":"projects/product-algorithm/Counting/Algorithm/Product/Evaluation.lean","source_sha256":"e1829a6873bef3b704f4a3e17920193233e9affad9c2375ee7f5e2f9dd9909df","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-algorithm/Counting/Algorithm/Product/Evaluation.lean#L74","summary":"Evaluate eq partition.","type":"∀ {K : Type} [inst : CommSemiring.{0} K] (I : @Counting.Algorithm.Product.Instance K inst),\n  @Eq.{1} K (@Counting.Algorithm.Product.evaluate K inst I) (@Counting.Algorithm.Product.Instance.partition K inst I)"},{"category":"core","display_name":"Counting.Algorithm.Product.run_correct_and_bounded","family":"core-product","import":"Counting.Algorithm.Product","kind":"theorem","module":"Counting.Algorithm.Product.Evaluation","name":"Counting.Algorithm.Product.run_correct_and_bounded","readable_type":"∀ {K : Type} [inst : CommSemiring K] (I : Counting.Algorithm.Product.Instance K),\n  And (Eq (Counting.Algorithm.Product.run I).fst (I.toOpenInstance.partition Empty.elim))\n    (instLENat.le (Counting.Algorithm.Product.run I).snd\n      (instHAdd.hAdd (instHMul.hMul (instHAdd.hAdd (instHMul.hMul 2 I.variableCount) 1) I.factorCount)\n        (instHMul.hMul 2 I.variableCount)))","role":"theorem","source_line":95,"source_path":"projects/product-algorithm/Counting/Algorithm/Product/Evaluation.lean","source_sha256":"e1829a6873bef3b704f4a3e17920193233e9affad9c2375ee7f5e2f9dd9909df","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-algorithm/Counting/Algorithm/Product/Evaluation.lean#L95","summary":"Simultaneous semantic correctness and arithmetic bound for the same run.","type":"∀ {K : Type} [inst : CommSemiring.{0} K] (I : @Counting.Algorithm.Product.Instance K inst),\n  And\n    (@Eq.{1} K (@Prod.fst.{0, 0} K Nat (@Counting.Algorithm.Product.run K inst I))\n      (@Counting.Model.OpenInstance.partition Bool K (Counting.Algorithm.Product.Label K) Empty\n        (Fin (@Counting.Algorithm.Product.Instance.variableCount K inst I))\n        (@Counting.Algorithm.Product.language K inst) inst Bool.fintype\n        (Fin.fintype (@Counting.Algorithm.Product.Instance.variableCount K inst I))\n        (instDecidableEqFin (@Counting.Algorithm.Product.Instance.variableCount K inst I))\n        (@Counting.Algorithm.Product.Instance.toOpenInstance K inst I) (@Empty.elim.{1} Bool)))\n    (@LE.le.{0} Nat instLENat (@Prod.snd.{0, 0} K Nat (@Counting.Algorithm.Product.run K inst I))\n      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n        (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)\n          (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n            (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)\n              (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Counting.Algorithm.Product.Instance.variableCount K inst I))\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (@Counting.Algorithm.Product.Instance.factorCount K inst I))\n        (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)\n          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          (@Counting.Algorithm.Product.Instance.variableCount K inst I))))"},{"category":"core","display_name":"Counting.Algorithm.Product.run_operations_le","family":"core-product","import":"Counting.Algorithm.Product","kind":"theorem","module":"Counting.Algorithm.Product.Evaluation","name":"Counting.Algorithm.Product.run_operations_le","readable_type":"∀ {K : Type} [inst : CommSemiring K] (I : Counting.Algorithm.Product.Instance K),\n  instLENat.le (Counting.Algorithm.Product.run I).snd\n    (instHAdd.hAdd (instHMul.hMul (instHAdd.hAdd (instHMul.hMul 2 I.variableCount) 1) I.factorCount)\n      (instHMul.hMul 2 I.variableCount))","role":"theorem","source_line":85,"source_path":"projects/product-algorithm/Counting/Algorithm/Product/Evaluation.lean","source_sha256":"e1829a6873bef3b704f4a3e17920193233e9affad9c2375ee7f5e2f9dd9909df","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-algorithm/Counting/Algorithm/Product/Evaluation.lean#L85","summary":"This counts arithmetic inside elimination. It does not charge bit lengths, input compilation, or finite-address operations as coefficient arithmetic.","type":"∀ {K : Type} [inst : CommSemiring.{0} K] (I : @Counting.Algorithm.Product.Instance K inst),\n  @LE.le.{0} Nat instLENat (@Prod.snd.{0, 0} K Nat (@Counting.Algorithm.Product.run K inst I))\n    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n      (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n          (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)\n            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Counting.Algorithm.Product.Instance.variableCount K inst I))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        (@Counting.Algorithm.Product.Instance.factorCount K inst I))\n      (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        (@Counting.Algorithm.Product.Instance.variableCount K inst I)))"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.Clients.cancellation_machine_run","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Clients","kind":"definition","module":"Counting.Algorithm.ProductFinitePalette.Clients","name":"Counting.Algorithm.ProductFinitePalette.Clients.cancellation_machine_run","name_semantics":"actual named kernel declaration","readable_type":"Turing.TM2OutputsInTime\n  (Counting.Algorithm.ProductFinitePalette.computes Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n        Counting.Algorithm.ProductFinitePalette.Clients.table).machine.computer\n  ((Counting.Algorithm.ProductFinitePalette.inputEncoding Counting.Algorithm.ProductFinitePalette.Clients.values).encode\n    Counting.Algorithm.ProductFinitePalette.Clients.cancellation)\n  (Option.some (Counting.Algorithm.ProductFinitePalette.Clients.rationalField.encoding.encode 0))\n  (Polynomial.eval\n    ((Counting.Algorithm.ProductFinitePalette.inputEncoding\n            Counting.Algorithm.ProductFinitePalette.Clients.values).encode\n        Counting.Algorithm.ProductFinitePalette.Clients.cancellation).length\n    (Counting.Algorithm.ProductFinitePalette.computes Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n        Counting.Algorithm.ProductFinitePalette.Clients.table).time)","role":"client","source_line":106,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Clients.lean","source_sha256":"21dc3e97dcf91756f6229535f6797208c8ab8764be40e92187755c61fa39afde","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Clients.lean#L106","type":"Turing.TM2OutputsInTime\n  (Holant.Complexity.BinaryCompose.Machine.computer\n    (@Holant.Complexity.BinaryCompose.Computes.machine\n      (@Counting.Algorithm.ProductFinitePalette.Input Rat\n        (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n          Counting.Algorithm.ProductFinitePalette.Clients.table))\n      Rat\n      (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n        (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n          Counting.Algorithm.ProductFinitePalette.Clients.table))\n      (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n      (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n        (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n          Counting.Algorithm.ProductFinitePalette.Clients.table))\n      (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n        Counting.Algorithm.ProductFinitePalette.Clients.table)))\n  (@Computability.Encoding.encode.{0, 0}\n    (@Counting.Algorithm.ProductFinitePalette.Input Rat Rat.commSemiring\n      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n      Counting.Algorithm.ProductFinitePalette.Clients.values)\n    Bool\n    (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat Rat.commSemiring\n      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n      Counting.Algorithm.ProductFinitePalette.Clients.values)\n    Counting.Algorithm.ProductFinitePalette.Clients.cancellation)\n  (@Option.some.{0}\n    (List.{0}\n      (Turing.FinTM2.Γ\n        (Holant.Complexity.BinaryCompose.Machine.computer\n          (@Holant.Complexity.BinaryCompose.Computes.machine\n            (@Counting.Algorithm.ProductFinitePalette.Input Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            Rat\n            (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n            (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n              Counting.Algorithm.ProductFinitePalette.Clients.table)))\n        (Turing.FinTM2.k₁\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Counting.Algorithm.ProductFinitePalette.Input Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              Rat\n              (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n              (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))))))\n    (@Computability.Encoding.encode.{0, 0} Rat Bool\n      (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n      (@OfNat.ofNat.{0} Rat (nat_lit 0) (@Rat.instOfNat (nat_lit 0)))))\n  (@Polynomial.eval.{0} Nat Nat.instSemiring\n    (@List.length.{0} Bool\n      (@Computability.Encoding.encode.{0, 0}\n        (@Counting.Algorithm.ProductFinitePalette.Input Rat Rat.commSemiring\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          Counting.Algorithm.ProductFinitePalette.Clients.values)\n        Bool\n        (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat Rat.commSemiring\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          Counting.Algorithm.ProductFinitePalette.Clients.values)\n        Counting.Algorithm.ProductFinitePalette.Clients.cancellation))\n    (@Holant.Complexity.BinaryCompose.Computes.time\n      (@Counting.Algorithm.ProductFinitePalette.Input Rat\n        (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n          Counting.Algorithm.ProductFinitePalette.Clients.table))\n      Rat\n      (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n        (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n          Counting.Algorithm.ProductFinitePalette.Clients.table))\n      (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n      (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n        (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n          Counting.Algorithm.ProductFinitePalette.Clients.table))\n      (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n        Counting.Algorithm.ProductFinitePalette.Clients.table)))"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.Clients.cancellation_partition","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Clients","kind":"theorem","module":"Counting.Algorithm.ProductFinitePalette.Clients","name":"Counting.Algorithm.ProductFinitePalette.Clients.cancellation_partition","name_semantics":"actual named kernel declaration","readable_type":"Eq\n  (Counting.Algorithm.ProductFinitePalette.Input.partition Counting.Algorithm.ProductFinitePalette.Clients.values\n    Counting.Algorithm.ProductFinitePalette.Clients.cancellation)\n  0","role":"client","source_line":55,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Clients.lean","source_sha256":"21dc3e97dcf91756f6229535f6797208c8ab8764be40e92187755c61fa39afde","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Clients.lean#L55","type":"@Eq.{1} Rat\n  (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat Rat.commSemiring\n    (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6))) Counting.Algorithm.ProductFinitePalette.Clients.values\n    Counting.Algorithm.ProductFinitePalette.Clients.cancellation)\n  (@OfNat.ofNat.{0} Rat (nat_lit 0) (@Rat.instOfNat (nat_lit 0)))"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.Clients.isolated_partition","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Clients","kind":"theorem","module":"Counting.Algorithm.ProductFinitePalette.Clients","name":"Counting.Algorithm.ProductFinitePalette.Clients.isolated_partition","name_semantics":"actual named kernel declaration","readable_type":"Eq\n  (Counting.Algorithm.ProductFinitePalette.Input.partition Counting.Algorithm.ProductFinitePalette.Clients.values\n    Counting.Algorithm.ProductFinitePalette.Clients.isolated)\n  32","role":"client","source_line":87,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Clients.lean","source_sha256":"21dc3e97dcf91756f6229535f6797208c8ab8764be40e92187755c61fa39afde","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Clients.lean#L87","type":"@Eq.{1} Rat\n  (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat Rat.commSemiring\n    (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6))) Counting.Algorithm.ProductFinitePalette.Clients.values\n    Counting.Algorithm.ProductFinitePalette.Clients.isolated)\n  (@OfNat.ofNat.{0} Rat (nat_lit 32) (@Rat.instOfNat (nat_lit 32)))"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.Clients.nullary_partition","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Clients","kind":"theorem","module":"Counting.Algorithm.ProductFinitePalette.Clients","name":"Counting.Algorithm.ProductFinitePalette.Clients.nullary_partition","name_semantics":"actual named kernel declaration","readable_type":"Eq\n  (Counting.Algorithm.ProductFinitePalette.Input.partition Counting.Algorithm.ProductFinitePalette.Clients.values\n    Counting.Algorithm.ProductFinitePalette.Clients.nullary)\n  18","role":"client","source_line":77,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Clients.lean","source_sha256":"21dc3e97dcf91756f6229535f6797208c8ab8764be40e92187755c61fa39afde","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Clients.lean#L77","type":"@Eq.{1} Rat\n  (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat Rat.commSemiring\n    (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6))) Counting.Algorithm.ProductFinitePalette.Clients.values\n    Counting.Algorithm.ProductFinitePalette.Clients.nullary)\n  (@OfNat.ofNat.{0} Rat (nat_lit 18) (@Rat.instOfNat (nat_lit 18)))"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.Clients.repeated_cost","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Clients","kind":"theorem","module":"Counting.Algorithm.ProductFinitePalette.Clients","name":"Counting.Algorithm.ProductFinitePalette.Clients.repeated_cost","name_semantics":"actual named kernel declaration","readable_type":"instLENat.le\n  (Holant.Complexity.FixedFieldMachines.primitiveCost\n    (Counting.Algorithm.ProductFinitePalette.computes Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n        Counting.Algorithm.ProductFinitePalette.Clients.table).machine\n    ((Counting.Algorithm.ProductFinitePalette.computes Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n            Counting.Algorithm.ProductFinitePalette.Clients.table).outputs\n        Counting.Algorithm.ProductFinitePalette.Clients.repeated).steps\n    (Option.some\n      (Turing.initList\n        (Counting.Algorithm.ProductFinitePalette.computes Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n              Counting.Algorithm.ProductFinitePalette.Clients.table).machine.computer\n        ((Counting.Algorithm.ProductFinitePalette.inputEncoding\n              Counting.Algorithm.ProductFinitePalette.Clients.values).encode\n          Counting.Algorithm.ProductFinitePalette.Clients.repeated))))\n  (Polynomial.eval\n    ((Counting.Algorithm.ProductFinitePalette.inputEncoding\n            Counting.Algorithm.ProductFinitePalette.Clients.values).encode\n        Counting.Algorithm.ProductFinitePalette.Clients.repeated).length\n    (Holant.Complexity.FixedFieldMachines.primitivePolynomial\n      (Counting.Algorithm.ProductFinitePalette.computes Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n        Counting.Algorithm.ProductFinitePalette.Clients.table)))","role":"client","source_line":122,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Clients.lean","source_sha256":"21dc3e97dcf91756f6229535f6797208c8ab8764be40e92187755c61fa39afde","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Clients.lean#L122","type":"@LE.le.{0} Nat instLENat\n  (Holant.Complexity.FixedFieldMachines.primitiveCost\n    (@Holant.Complexity.BinaryCompose.Computes.machine\n      (@Counting.Algorithm.ProductFinitePalette.Input Rat\n        (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n          Counting.Algorithm.ProductFinitePalette.Clients.table))\n      Rat\n      (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n        (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n          Counting.Algorithm.ProductFinitePalette.Clients.table))\n      (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n      (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n        (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n          Counting.Algorithm.ProductFinitePalette.Clients.table))\n      (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n        Counting.Algorithm.ProductFinitePalette.Clients.table))\n    (@StateTransition.EvalsTo.steps.{0}\n      (Turing.FinTM2.Cfg\n        (Holant.Complexity.BinaryCompose.Machine.computer\n          (@Holant.Complexity.BinaryCompose.Computes.machine\n            (@Counting.Algorithm.ProductFinitePalette.Input Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            Rat\n            (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n            (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n              Counting.Algorithm.ProductFinitePalette.Clients.table))))\n      (Turing.FinTM2.step\n        (Holant.Complexity.BinaryCompose.Machine.computer\n          (@Holant.Complexity.BinaryCompose.Computes.machine\n            (@Counting.Algorithm.ProductFinitePalette.Input Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            Rat\n            (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n            (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n              Counting.Algorithm.ProductFinitePalette.Clients.table))))\n      (Turing.initList\n        (Holant.Complexity.BinaryCompose.Machine.computer\n          (@Holant.Complexity.BinaryCompose.Computes.machine\n            (@Counting.Algorithm.ProductFinitePalette.Input Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            Rat\n            (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n            (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n              Counting.Algorithm.ProductFinitePalette.Clients.table)))\n        (@Computability.Encoding.encode.{0, 0}\n          (@Counting.Algorithm.ProductFinitePalette.Input Rat\n            (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n            (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n            (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n              (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n              Counting.Algorithm.ProductFinitePalette.Clients.table))\n          Bool\n          (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n            (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n            (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n            (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n              (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n              Counting.Algorithm.ProductFinitePalette.Clients.table))\n          Counting.Algorithm.ProductFinitePalette.Clients.repeated))\n      (@Option.map.{0, 0}\n        (List.{0}\n          (Turing.FinTM2.Γ\n            (Holant.Complexity.BinaryCompose.Machine.computer\n              (@Holant.Complexity.BinaryCompose.Computes.machine\n                (@Counting.Algorithm.ProductFinitePalette.Input Rat\n                  (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                    Counting.Algorithm.ProductFinitePalette.Clients.table))\n                Rat\n                (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n                  (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                    Counting.Algorithm.ProductFinitePalette.Clients.table))\n                (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n                (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n                  (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                    Counting.Algorithm.ProductFinitePalette.Clients.table))\n                (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table)))\n            (Turing.FinTM2.k₁\n              (Holant.Complexity.BinaryCompose.Machine.computer\n                (@Holant.Complexity.BinaryCompose.Computes.machine\n                  (@Counting.Algorithm.ProductFinitePalette.Input Rat\n                    (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                      Counting.Algorithm.ProductFinitePalette.Clients.table))\n                  Rat\n                  (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n                    (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                      Counting.Algorithm.ProductFinitePalette.Clients.table))\n                  (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n                  (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n                    (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                      Counting.Algorithm.ProductFinitePalette.Clients.table))\n                  (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                    Counting.Algorithm.ProductFinitePalette.Clients.table))))))\n        (Turing.FinTM2.Cfg\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Counting.Algorithm.ProductFinitePalette.Input Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              Rat\n              (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n              (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))))\n        (Turing.haltList\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Counting.Algorithm.ProductFinitePalette.Input Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              Rat\n              (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n              (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))))\n        (@Option.some.{0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (Holant.Complexity.BinaryCompose.Machine.computer\n                (@Holant.Complexity.BinaryCompose.Computes.machine\n                  (@Counting.Algorithm.ProductFinitePalette.Input Rat\n                    (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                      Counting.Algorithm.ProductFinitePalette.Clients.table))\n                  Rat\n                  (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n                    (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                      Counting.Algorithm.ProductFinitePalette.Clients.table))\n                  (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n                  (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n                    (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                      Counting.Algorithm.ProductFinitePalette.Clients.table))\n                  (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                    Counting.Algorithm.ProductFinitePalette.Clients.table)))\n              (Turing.FinTM2.k₁\n                (Holant.Complexity.BinaryCompose.Machine.computer\n                  (@Holant.Complexity.BinaryCompose.Computes.machine\n                    (@Counting.Algorithm.ProductFinitePalette.Input Rat\n                      (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                        Counting.Algorithm.ProductFinitePalette.Clients.table))\n                    Rat\n                    (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n                      (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                        Counting.Algorithm.ProductFinitePalette.Clients.table))\n                    (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n                    (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n                      (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                        Counting.Algorithm.ProductFinitePalette.Clients.table))\n                    (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                      Counting.Algorithm.ProductFinitePalette.Clients.table))))))\n          (@Computability.Encoding.encode.{0, 0} Rat Bool\n            (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n            (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table)\n              Counting.Algorithm.ProductFinitePalette.Clients.repeated))))\n      (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n        (Turing.FinTM2.Cfg\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Counting.Algorithm.ProductFinitePalette.Input Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              Rat\n              (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n              (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))))\n        (Turing.FinTM2.step\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Counting.Algorithm.ProductFinitePalette.Input Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              Rat\n              (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n              (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))))\n        (Turing.initList\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Counting.Algorithm.ProductFinitePalette.Input Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              Rat\n              (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n              (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table)))\n          (@Computability.Encoding.encode.{0, 0}\n            (@Counting.Algorithm.ProductFinitePalette.Input Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            Bool\n            (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            Counting.Algorithm.ProductFinitePalette.Clients.repeated))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (Holant.Complexity.BinaryCompose.Machine.computer\n                (@Holant.Complexity.BinaryCompose.Computes.machine\n                  (@Counting.Algorithm.ProductFinitePalette.Input Rat\n                    (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                      Counting.Algorithm.ProductFinitePalette.Clients.table))\n                  Rat\n                  (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n                    (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                      Counting.Algorithm.ProductFinitePalette.Clients.table))\n                  (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n                  (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n                    (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                      Counting.Algorithm.ProductFinitePalette.Clients.table))\n                  (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                    Counting.Algorithm.ProductFinitePalette.Clients.table)))\n              (Turing.FinTM2.k₁\n                (Holant.Complexity.BinaryCompose.Machine.computer\n                  (@Holant.Complexity.BinaryCompose.Computes.machine\n                    (@Counting.Algorithm.ProductFinitePalette.Input Rat\n                      (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                        Counting.Algorithm.ProductFinitePalette.Clients.table))\n                    Rat\n                    (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n                      (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                        Counting.Algorithm.ProductFinitePalette.Clients.table))\n                    (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n                    (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n                      (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                        Counting.Algorithm.ProductFinitePalette.Clients.table))\n                    (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                      Counting.Algorithm.ProductFinitePalette.Clients.table))))))\n          (Turing.FinTM2.Cfg\n            (Holant.Complexity.BinaryCompose.Machine.computer\n              (@Holant.Complexity.BinaryCompose.Computes.machine\n                (@Counting.Algorithm.ProductFinitePalette.Input Rat\n                  (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                    Counting.Algorithm.ProductFinitePalette.Clients.table))\n                Rat\n                (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n                  (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                    Counting.Algorithm.ProductFinitePalette.Clients.table))\n                (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n                (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n                  (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                    Counting.Algorithm.ProductFinitePalette.Clients.table))\n                (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))))\n          (Turing.haltList\n            (Holant.Complexity.BinaryCompose.Machine.computer\n              (@Holant.Complexity.BinaryCompose.Computes.machine\n                (@Counting.Algorithm.ProductFinitePalette.Input Rat\n                  (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                    Counting.Algorithm.ProductFinitePalette.Clients.table))\n                Rat\n                (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n                  (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                    Counting.Algorithm.ProductFinitePalette.Clients.table))\n                (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n                (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n                  (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                    (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                    Counting.Algorithm.ProductFinitePalette.Clients.table))\n                (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (Holant.Complexity.BinaryCompose.Machine.computer\n                  (@Holant.Complexity.BinaryCompose.Computes.machine\n                    (@Counting.Algorithm.ProductFinitePalette.Input Rat\n                      (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                        Counting.Algorithm.ProductFinitePalette.Clients.table))\n                    Rat\n                    (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n                      (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                        Counting.Algorithm.ProductFinitePalette.Clients.table))\n                    (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n                    (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n                      (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                        Counting.Algorithm.ProductFinitePalette.Clients.table))\n                    (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField\n                      (@Algebra.id.{0} Rat Rat.commSemiring)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                      Counting.Algorithm.ProductFinitePalette.Clients.table)))\n                (Turing.FinTM2.k₁\n                  (Holant.Complexity.BinaryCompose.Machine.computer\n                    (@Holant.Complexity.BinaryCompose.Computes.machine\n                      (@Counting.Algorithm.ProductFinitePalette.Input Rat\n                        (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                        (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                          (@Algebra.id.{0} Rat Rat.commSemiring)\n                          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                          Counting.Algorithm.ProductFinitePalette.Clients.table))\n                      Rat\n                      (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n                        (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                        (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                          (@Algebra.id.{0} Rat Rat.commSemiring)\n                          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                          Counting.Algorithm.ProductFinitePalette.Clients.table))\n                      (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n                      (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n                        (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                        (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                          (@Algebra.id.{0} Rat Rat.commSemiring)\n                          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                          Counting.Algorithm.ProductFinitePalette.Clients.table))\n                      (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField\n                        (@Algebra.id.{0} Rat Rat.commSemiring)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                        Counting.Algorithm.ProductFinitePalette.Clients.table))))))\n            (@Computability.Encoding.encode.{0, 0} Rat Bool\n              (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n              (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table)\n                Counting.Algorithm.ProductFinitePalette.Clients.repeated))))\n        (@Polynomial.eval.{0} Nat Nat.instSemiring\n          (@List.length.{0} Bool\n            (@Computability.Encoding.encode.{0, 0}\n              (@Counting.Algorithm.ProductFinitePalette.Input Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              Bool\n              (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              Counting.Algorithm.ProductFinitePalette.Clients.repeated))\n          (@Holant.Complexity.BinaryCompose.Computes.time\n            (@Counting.Algorithm.ProductFinitePalette.Input Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            Rat\n            (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n            (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n              Counting.Algorithm.ProductFinitePalette.Clients.table)))\n        (@Holant.Complexity.BinaryCompose.Computes.outputs\n          (@Counting.Algorithm.ProductFinitePalette.Input Rat\n            (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n            (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n            (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n              (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n              Counting.Algorithm.ProductFinitePalette.Clients.table))\n          Rat\n          (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n            (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n            (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n            (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n              (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n              Counting.Algorithm.ProductFinitePalette.Clients.table))\n          (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n          (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n            (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n            (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n            (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n              (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n              Counting.Algorithm.ProductFinitePalette.Clients.table))\n          (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n            (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n            Counting.Algorithm.ProductFinitePalette.Clients.table)\n          Counting.Algorithm.ProductFinitePalette.Clients.repeated)))\n    (@Option.some.{0}\n      (Holant.Complexity.BinaryCompose.Machine.Config\n        (@Holant.Complexity.BinaryCompose.Computes.machine\n          (@Counting.Algorithm.ProductFinitePalette.Input Rat\n            (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n            (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n            (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n              (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n              Counting.Algorithm.ProductFinitePalette.Clients.table))\n          Rat\n          (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n            (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n            (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n            (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n              (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n              Counting.Algorithm.ProductFinitePalette.Clients.table))\n          (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n          (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n            (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n            (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n            (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n              (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n              Counting.Algorithm.ProductFinitePalette.Clients.table))\n          (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n            (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n            Counting.Algorithm.ProductFinitePalette.Clients.table)))\n      (Turing.initList\n        (Holant.Complexity.BinaryCompose.Machine.computer\n          (@Holant.Complexity.BinaryCompose.Computes.machine\n            (@Counting.Algorithm.ProductFinitePalette.Input Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            Rat\n            (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n            (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n              Counting.Algorithm.ProductFinitePalette.Clients.table)))\n        (@Computability.Encoding.encode.{0, 0}\n          (@Counting.Algorithm.ProductFinitePalette.Input Rat Rat.commSemiring\n            (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n            Counting.Algorithm.ProductFinitePalette.Clients.values)\n          Bool\n          (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat Rat.commSemiring\n            (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n            Counting.Algorithm.ProductFinitePalette.Clients.values)\n          Counting.Algorithm.ProductFinitePalette.Clients.repeated))))\n  (@Polynomial.eval.{0} Nat Nat.instSemiring\n    (@List.length.{0} Bool\n      (@Computability.Encoding.encode.{0, 0}\n        (@Counting.Algorithm.ProductFinitePalette.Input Rat Rat.commSemiring\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          Counting.Algorithm.ProductFinitePalette.Clients.values)\n        Bool\n        (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat Rat.commSemiring\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          Counting.Algorithm.ProductFinitePalette.Clients.values)\n        Counting.Algorithm.ProductFinitePalette.Clients.repeated))\n    (@Holant.Complexity.FixedFieldMachines.primitivePolynomial\n      (@Counting.Algorithm.ProductFinitePalette.Input Rat\n        (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n          Counting.Algorithm.ProductFinitePalette.Clients.table))\n      Rat\n      (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n        (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n          Counting.Algorithm.ProductFinitePalette.Clients.table))\n      (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n      (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n        (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n          Counting.Algorithm.ProductFinitePalette.Clients.table))\n      (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n        Counting.Algorithm.ProductFinitePalette.Clients.table)))"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.Clients.repeated_machine_run","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Clients","kind":"definition","module":"Counting.Algorithm.ProductFinitePalette.Clients","name":"Counting.Algorithm.ProductFinitePalette.Clients.repeated_machine_run","name_semantics":"actual named kernel declaration","readable_type":"Turing.TM2OutputsInTime\n  (Counting.Algorithm.ProductFinitePalette.computes Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n        Counting.Algorithm.ProductFinitePalette.Clients.table).machine.computer\n  ((Counting.Algorithm.ProductFinitePalette.inputEncoding Counting.Algorithm.ProductFinitePalette.Clients.values).encode\n    Counting.Algorithm.ProductFinitePalette.Clients.repeated)\n  (Option.some (Counting.Algorithm.ProductFinitePalette.Clients.rationalField.encoding.encode 228))\n  (Polynomial.eval\n    ((Counting.Algorithm.ProductFinitePalette.inputEncoding\n            Counting.Algorithm.ProductFinitePalette.Clients.values).encode\n        Counting.Algorithm.ProductFinitePalette.Clients.repeated).length\n    (Counting.Algorithm.ProductFinitePalette.computes Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n        Counting.Algorithm.ProductFinitePalette.Clients.table).time)","role":"client","source_line":99,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Clients.lean","source_sha256":"21dc3e97dcf91756f6229535f6797208c8ab8764be40e92187755c61fa39afde","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Clients.lean#L99","type":"Turing.TM2OutputsInTime\n  (Holant.Complexity.BinaryCompose.Machine.computer\n    (@Holant.Complexity.BinaryCompose.Computes.machine\n      (@Counting.Algorithm.ProductFinitePalette.Input Rat\n        (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n          Counting.Algorithm.ProductFinitePalette.Clients.table))\n      Rat\n      (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n        (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n          Counting.Algorithm.ProductFinitePalette.Clients.table))\n      (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n      (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n        (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n          Counting.Algorithm.ProductFinitePalette.Clients.table))\n      (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n        Counting.Algorithm.ProductFinitePalette.Clients.table)))\n  (@Computability.Encoding.encode.{0, 0}\n    (@Counting.Algorithm.ProductFinitePalette.Input Rat Rat.commSemiring\n      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n      Counting.Algorithm.ProductFinitePalette.Clients.values)\n    Bool\n    (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat Rat.commSemiring\n      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n      Counting.Algorithm.ProductFinitePalette.Clients.values)\n    Counting.Algorithm.ProductFinitePalette.Clients.repeated)\n  (@Option.some.{0}\n    (List.{0}\n      (Turing.FinTM2.Γ\n        (Holant.Complexity.BinaryCompose.Machine.computer\n          (@Holant.Complexity.BinaryCompose.Computes.machine\n            (@Counting.Algorithm.ProductFinitePalette.Input Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            Rat\n            (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n            (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n              (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))\n            (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n              (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n              Counting.Algorithm.ProductFinitePalette.Clients.table)))\n        (Turing.FinTM2.k₁\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Counting.Algorithm.ProductFinitePalette.Input Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              Rat\n              (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n              (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n                (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n                (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField\n                  (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                  Counting.Algorithm.ProductFinitePalette.Clients.table))\n              (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField\n                (@Algebra.id.{0} Rat Rat.commSemiring) (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n                Counting.Algorithm.ProductFinitePalette.Clients.table))))))\n    (@Computability.Encoding.encode.{0, 0} Rat Bool\n      (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n      (@OfNat.ofNat.{0} Rat (nat_lit 228) (@Rat.instOfNat (nat_lit 228)))))\n  (@Polynomial.eval.{0} Nat Nat.instSemiring\n    (@List.length.{0} Bool\n      (@Computability.Encoding.encode.{0, 0}\n        (@Counting.Algorithm.ProductFinitePalette.Input Rat Rat.commSemiring\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          Counting.Algorithm.ProductFinitePalette.Clients.values)\n        Bool\n        (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat Rat.commSemiring\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          Counting.Algorithm.ProductFinitePalette.Clients.values)\n        Counting.Algorithm.ProductFinitePalette.Clients.repeated))\n    (@Holant.Complexity.BinaryCompose.Computes.time\n      (@Counting.Algorithm.ProductFinitePalette.Input Rat\n        (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n          Counting.Algorithm.ProductFinitePalette.Clients.table))\n      Rat\n      (@Counting.Algorithm.ProductFinitePalette.inputEncoding Rat\n        (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n          Counting.Algorithm.ProductFinitePalette.Clients.table))\n      (@Holant.Algebraic.FixedField.encoding.{0} Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Algorithm.ProductFinitePalette.Clients.rationalField)\n      (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat\n        (@Semifield.toCommSemiring.{0} Rat (@Field.toSemifield.{0} Rat Rat.instField))\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@Counting.Algorithm.ProductFinitePalette.coefficients Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n          (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n          Counting.Algorithm.ProductFinitePalette.Clients.table))\n      (@Counting.Algorithm.ProductFinitePalette.computes Rat Rat.instField (@Algebra.id.{0} Rat Rat.commSemiring)\n        (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Algorithm.ProductFinitePalette.Clients.rationalField\n        Counting.Algorithm.ProductFinitePalette.Clients.table)))"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.Clients.repeated_partition","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Clients","kind":"theorem","module":"Counting.Algorithm.ProductFinitePalette.Clients","name":"Counting.Algorithm.ProductFinitePalette.Clients.repeated_partition","name_semantics":"actual named kernel declaration","readable_type":"Eq\n  (Counting.Algorithm.ProductFinitePalette.Input.partition Counting.Algorithm.ProductFinitePalette.Clients.values\n    Counting.Algorithm.ProductFinitePalette.Clients.repeated)\n  228","role":"client","source_line":47,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Clients.lean","source_sha256":"21dc3e97dcf91756f6229535f6797208c8ab8764be40e92187755c61fa39afde","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Clients.lean#L47","type":"@Eq.{1} Rat\n  (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat Rat.commSemiring\n    (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6))) Counting.Algorithm.ProductFinitePalette.Clients.values\n    Counting.Algorithm.ProductFinitePalette.Clients.repeated)\n  (@OfNat.ofNat.{0} Rat (nat_lit 228) (@Rat.instOfNat (nat_lit 228)))"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.Clients.zero_partition","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Clients","kind":"theorem","module":"Counting.Algorithm.ProductFinitePalette.Clients","name":"Counting.Algorithm.ProductFinitePalette.Clients.zero_partition","name_semantics":"actual named kernel declaration","readable_type":"Eq\n  (Counting.Algorithm.ProductFinitePalette.Input.partition Counting.Algorithm.ProductFinitePalette.Clients.values\n    Counting.Algorithm.ProductFinitePalette.Clients.zeroScalar)\n  0","role":"client","source_line":67,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Clients.lean","source_sha256":"21dc3e97dcf91756f6229535f6797208c8ab8764be40e92187755c61fa39afde","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Clients.lean#L67","type":"@Eq.{1} Rat\n  (@Counting.Algorithm.ProductFinitePalette.Input.partition Rat Rat.commSemiring\n    (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6))) Counting.Algorithm.ProductFinitePalette.Clients.values\n    Counting.Algorithm.ProductFinitePalette.Clients.zeroScalar)\n  (@OfNat.ofNat.{0} Rat (nat_lit 0) (@Rat.instOfNat (nat_lit 0)))"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.Input","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Input","kind":"inductive","module":"Counting.Algorithm.ProductFinitePalette.Input","name":"Counting.Algorithm.ProductFinitePalette.Input","name_semantics":"actual named kernel declaration","readable_type":"{K : Type} → [CommSemiring K] → {q : Nat} → (Fin q → K) → Type","role":"public","source_line":31,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Input.lean","source_sha256":"95a7eaa28cdaac2ee319e67d149bf698be42077aeb1c4077a61bc6fb91428097","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Input.lean#L31","type":"{K : Type} → [CommSemiring.{0} K] → {q : Nat} → (values : Fin q → K) → Type"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.Input.compile","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Input","kind":"definition","module":"Counting.Algorithm.ProductFinitePalette.Input","name":"Counting.Algorithm.ProductFinitePalette.Input.compile","name_semantics":"actual named kernel declaration","readable_type":"{K : Type} →\n  [inst : CommSemiring K] →\n    {q : Nat} →\n      (values : Fin q → K) →\n        Counting.Algorithm.ProductFinitePalette.Input values →\n          (n : Nat) × List (Holant.LocalDrafts.Tractability.ProductElimination.LabelledFactor (Fin q) n)","role":"public","source_line":147,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Input.lean","source_sha256":"95a7eaa28cdaac2ee319e67d149bf698be42077aeb1c4077a61bc6fb91428097","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Input.lean#L147","type":"{K : Type} →\n  [inst : CommSemiring.{0} K] →\n    {q : Nat} →\n      (values : Fin q → K) →\n        (I : @Counting.Algorithm.ProductFinitePalette.Input K inst q values) →\n          @Sigma.{0, 0} Nat fun (n : Nat) =>\n            List.{0} (Holant.LocalDrafts.Tractability.ProductElimination.LabelledFactor.{0} (Fin q) n)"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.Input.compile_partition","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Input","kind":"theorem","module":"Counting.Algorithm.ProductFinitePalette.Input","name":"Counting.Algorithm.ProductFinitePalette.Input.compile_partition","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : CommSemiring K] {q : Nat} (values : Fin q → K)\n  (I : Counting.Algorithm.ProductFinitePalette.Input values),\n  Eq\n    (Holant.LocalDrafts.Tractability.ProductElimination.partition\n      (List.map (Holant.LocalDrafts.Tractability.ProductElimination.LabelledFactor.realize values)\n        (Counting.Algorithm.ProductFinitePalette.Input.compile values I).snd))\n    (Counting.Algorithm.ProductFinitePalette.Input.partition values I)","role":"public","source_line":168,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Input.lean","source_sha256":"95a7eaa28cdaac2ee319e67d149bf698be42077aeb1c4077a61bc6fb91428097","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Input.lean#L168","type":"∀ {K : Type} [inst : CommSemiring.{0} K] {q : Nat} (values : Fin q → K)\n  (I : @Counting.Algorithm.ProductFinitePalette.Input K inst q values),\n  @Eq.{1} K\n    (@Holant.LocalDrafts.Tractability.ProductElimination.partition.{0} K inst\n      (@Sigma.fst.{0, 0} Nat\n        (fun (n : Nat) => List.{0} (Holant.LocalDrafts.Tractability.ProductElimination.LabelledFactor.{0} (Fin q) n))\n        (@Counting.Algorithm.ProductFinitePalette.Input.compile K inst q values I))\n      (@List.map.{0, 0}\n        (Holant.LocalDrafts.Tractability.ProductElimination.LabelledFactor.{0} (Fin q)\n          (@Sigma.fst.{0, 0} Nat\n            (fun (n : Nat) =>\n              List.{0} (Holant.LocalDrafts.Tractability.ProductElimination.LabelledFactor.{0} (Fin q) n))\n            (@Counting.Algorithm.ProductFinitePalette.Input.compile K inst q values I)))\n        (Holant.LocalDrafts.Tractability.ProductElimination.Factor.{0} K\n          (@Sigma.fst.{0, 0} Nat\n            (fun (n : Nat) =>\n              List.{0} (Holant.LocalDrafts.Tractability.ProductElimination.LabelledFactor.{0} (Fin q) n))\n            (@Counting.Algorithm.ProductFinitePalette.Input.compile K inst q values I)))\n        (@Holant.LocalDrafts.Tractability.ProductElimination.LabelledFactor.realize.{0, 0} K (Fin q)\n          (@Sigma.fst.{0, 0} Nat\n            (fun (n : Nat) =>\n              List.{0} (Holant.LocalDrafts.Tractability.ProductElimination.LabelledFactor.{0} (Fin q) n))\n            (@Counting.Algorithm.ProductFinitePalette.Input.compile K inst q values I))\n          values)\n        (@Sigma.snd.{0, 0} Nat\n          (fun (n : Nat) => List.{0} (Holant.LocalDrafts.Tractability.ProductElimination.LabelledFactor.{0} (Fin q) n))\n          (@Counting.Algorithm.ProductFinitePalette.Input.compile K inst q values I))))\n    (@Counting.Algorithm.ProductFinitePalette.Input.partition K inst q values I)"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.Input.toPublic_partition","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Input","kind":"theorem","module":"Counting.Algorithm.ProductFinitePalette.Input","name":"Counting.Algorithm.ProductFinitePalette.Input.toPublic_partition","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : CommSemiring K] {q : Nat} (values : Fin q → K)\n  (I : Counting.Algorithm.ProductFinitePalette.Input values),\n  Eq (Counting.Algorithm.ProductFinitePalette.Input.toPublic values I).partition\n    (Counting.Algorithm.ProductFinitePalette.Input.partition values I)","role":"public","source_line":73,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Input.lean","source_sha256":"95a7eaa28cdaac2ee319e67d149bf698be42077aeb1c4077a61bc6fb91428097","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Input.lean#L73","type":"∀ {K : Type} [inst : CommSemiring.{0} K] {q : Nat} (values : Fin q → K)\n  (I : @Counting.Algorithm.ProductFinitePalette.Input K inst q values),\n  @Eq.{1} K\n    (@Counting.Algorithm.Product.Instance.partition K inst\n      (@Counting.Algorithm.ProductFinitePalette.Input.toPublic K inst q values I))\n    (@Counting.Algorithm.ProductFinitePalette.Input.partition K inst q values I)"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.answerBits_decode","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Machine","kind":"theorem","module":"Counting.Algorithm.ProductFinitePalette.Machine","name":"Counting.Algorithm.ProductFinitePalette.answerBits_decode","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {q d : Nat} (F : Holant.Algebraic.FixedField K d)\n  (table : Fin q → Fin d → Rat)\n  (I : Counting.Algorithm.ProductFinitePalette.Input (Counting.Algorithm.ProductFinitePalette.coefficients F table)),\n  Eq (F.encoding.decode (Counting.Algorithm.ProductFinitePalette.answerBits F table I))\n    (Option.some\n      (Counting.Algorithm.ProductFinitePalette.Input.partition\n        (Counting.Algorithm.ProductFinitePalette.coefficients F table) I))","role":"public","source_line":121,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean","source_sha256":"5043ab4a58b37d7d0fd168d53fb14b8f4e376bf134d88bbdd82463cf350c991e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean#L121","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {q d : Nat} (F : @Holant.Algebraic.FixedField.{0} K inst inst_1 d) (table : Fin q → Fin d → Rat)\n  (I :\n    @Counting.Algorithm.ProductFinitePalette.Input K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table)),\n  @Eq.{1} (Option.{0} K)\n    (@Computability.Encoding.decode.{0, 0} K Bool (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n      (@Counting.Algorithm.ProductFinitePalette.answerBits K inst inst_1 q d F table I))\n    (@Option.some.{0} K\n      (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n        (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table) I))"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.compile_input","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Input","kind":"theorem","module":"Counting.Algorithm.ProductFinitePalette.Input","name":"Counting.Algorithm.ProductFinitePalette.compile_input","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : CommSemiring K] {q : Nat} (values : Fin q → K)\n  (x : (n : Nat) × List (Holant.LocalDrafts.Tractability.ProductElimination.LabelledFactor (Fin q) n)),\n  Eq\n    (Counting.Algorithm.ProductFinitePalette.Input.compile values\n      (Counting.Algorithm.ProductFinitePalette.restore values x))\n    x","role":"public","source_line":158,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Input.lean","source_sha256":"95a7eaa28cdaac2ee319e67d149bf698be42077aeb1c4077a61bc6fb91428097","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Input.lean#L158","type":"∀ {K : Type} [inst : CommSemiring.{0} K] {q : Nat} (values : Fin q → K)\n  (x :\n    @Sigma.{0, 0} Nat fun (n : Nat) =>\n      List.{0} (Holant.LocalDrafts.Tractability.ProductElimination.LabelledFactor.{0} (Fin q) n)),\n  @Eq.{1}\n    (@Sigma.{0, 0} Nat fun (n : Nat) =>\n      List.{0} (Holant.LocalDrafts.Tractability.ProductElimination.LabelledFactor.{0} (Fin q) n))\n    (@Counting.Algorithm.ProductFinitePalette.Input.compile K inst q values\n      (@Counting.Algorithm.ProductFinitePalette.restore K inst q values x))\n    x"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.computes","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Machine","kind":"definition","module":"Counting.Algorithm.ProductFinitePalette.Machine","name":"Counting.Algorithm.ProductFinitePalette.computes","name_semantics":"actual named kernel declaration","readable_type":"{K : Type} →\n  [inst : Field K] →\n    [inst_1 : Algebra Rat K] →\n      {q d : Nat} →\n        (F : Holant.Algebraic.FixedField K d) →\n          (table : Fin q → Fin d → Rat) →\n            Holant.Complexity.BinaryCompose.Computes\n              (Counting.Algorithm.ProductFinitePalette.inputEncoding\n                (Counting.Algorithm.ProductFinitePalette.coefficients F table))\n              F.encoding\n              (Counting.Algorithm.ProductFinitePalette.Input.partition\n                (Counting.Algorithm.ProductFinitePalette.coefficients F table))","role":"public","source_line":69,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean","source_sha256":"5043ab4a58b37d7d0fd168d53fb14b8f4e376bf134d88bbdd82463cf350c991e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean#L69","type":"{K : Type} →\n  [inst : Field.{0} K] →\n    [inst_1 :\n        @Algebra.{0, 0} Rat K Rat.commSemiring\n          (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))] →\n      {q d : Nat} →\n        (F : @Holant.Algebraic.FixedField.{0} K inst inst_1 d) →\n          (table : Fin q → Fin d → Rat) →\n            @Holant.Complexity.BinaryCompose.Computes\n              (@Counting.Algorithm.ProductFinitePalette.Input K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              K\n              (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n              (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.conversionComputes","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Machine","kind":"definition","module":"Counting.Algorithm.ProductFinitePalette.Machine","name":"Counting.Algorithm.ProductFinitePalette.conversionComputes","name_semantics":"actual named kernel declaration","readable_type":"{K : Type} →\n  [inst : CommSemiring K] →\n    {q : Nat} →\n      (values : Fin q → K) →\n        Holant.Complexity.BinaryCompose.Computes (Counting.Algorithm.ProductFinitePalette.inputEncoding values)\n          (Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.inputEncoding q)\n          (Counting.Algorithm.ProductFinitePalette.Input.compile values)","role":"public","source_line":47,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean","source_sha256":"5043ab4a58b37d7d0fd168d53fb14b8f4e376bf134d88bbdd82463cf350c991e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean#L47","type":"{K : Type} →\n  [inst : CommSemiring.{0} K] →\n    {q : Nat} →\n      (values : Fin q → K) →\n        @Holant.Complexity.BinaryCompose.Computes (@Counting.Algorithm.ProductFinitePalette.Input K inst q values)\n          (Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.Input q)\n          (@Counting.Algorithm.ProductFinitePalette.inputEncoding K inst q values)\n          (Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.inputEncoding q)\n          (@Counting.Algorithm.ProductFinitePalette.Input.compile K inst q values)"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.decode_encode_input","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Machine","kind":"theorem","module":"Counting.Algorithm.ProductFinitePalette.Machine","name":"Counting.Algorithm.ProductFinitePalette.decode_encode_input","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : CommSemiring K] {q : Nat} (values : Fin q → K)\n  (I : Counting.Algorithm.ProductFinitePalette.Input values),\n  Eq\n    ((Counting.Algorithm.ProductFinitePalette.inputEncoding values).decode\n      ((Counting.Algorithm.ProductFinitePalette.inputEncoding values).encode I))\n    (Option.some I)","role":"public","source_line":33,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean","source_sha256":"5043ab4a58b37d7d0fd168d53fb14b8f4e376bf134d88bbdd82463cf350c991e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean#L33","type":"∀ {K : Type} [inst : CommSemiring.{0} K] {q : Nat} (values : Fin q → K)\n  (I : @Counting.Algorithm.ProductFinitePalette.Input K inst q values),\n  @Eq.{1} (Option.{0} (@Counting.Algorithm.ProductFinitePalette.Input K inst q values))\n    (@Computability.Encoding.decode.{0, 0} (@Counting.Algorithm.ProductFinitePalette.Input K inst q values) Bool\n      (@Counting.Algorithm.ProductFinitePalette.inputEncoding K inst q values)\n      (@Computability.Encoding.encode.{0, 0} (@Counting.Algorithm.ProductFinitePalette.Input K inst q values) Bool\n        (@Counting.Algorithm.ProductFinitePalette.inputEncoding K inst q values) I))\n    (@Option.some.{0} (@Counting.Algorithm.ProductFinitePalette.Input K inst q values) I)"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.inFP","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Machine","kind":"theorem","module":"Counting.Algorithm.ProductFinitePalette.Machine","name":"Counting.Algorithm.ProductFinitePalette.inFP","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {q d : Nat} (F : Holant.Algebraic.FixedField K d)\n  (table : Fin q → Fin d → Rat),\n  Holant.Complexity.InFP\n    (Counting.Algorithm.ProductFinitePalette.inputEncoding\n      (Counting.Algorithm.ProductFinitePalette.coefficients F table))\n    F.encoding\n    (Counting.Algorithm.ProductFinitePalette.Input.partition\n      (Counting.Algorithm.ProductFinitePalette.coefficients F table))","role":"public","source_line":89,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean","source_sha256":"5043ab4a58b37d7d0fd168d53fb14b8f4e376bf134d88bbdd82463cf350c991e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean#L89","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {q d : Nat} (F : @Holant.Algebraic.FixedField.{0} K inst inst_1 d) (table : Fin q → Fin d → Rat),\n  @Holant.Complexity.InFP\n    (@Counting.Algorithm.ProductFinitePalette.Input K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst))\n      q (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n    K Bool Bool Bool.fintype Bool.fintype\n    (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n    (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n    (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.inputEncoding","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Machine","kind":"definition","module":"Counting.Algorithm.ProductFinitePalette.Machine","name":"Counting.Algorithm.ProductFinitePalette.inputEncoding","name_semantics":"actual named kernel declaration","readable_type":"{K : Type} →\n  [inst : CommSemiring K] →\n    {q : Nat} →\n      (values : Fin q → K) → Computability.Encoding (Counting.Algorithm.ProductFinitePalette.Input values) Bool","role":"public","source_line":23,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean","source_sha256":"5043ab4a58b37d7d0fd168d53fb14b8f4e376bf134d88bbdd82463cf350c991e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean#L23","specification":"fun {K : Type} [inst : CommSemiring.{0} K] {q : Nat} (values : Fin q → K) =>\n  @Computability.Encoding.mk.{0, 0} (@Counting.Algorithm.ProductFinitePalette.Input K inst q values) Bool\n    (fun (I : @Counting.Algorithm.ProductFinitePalette.Input K inst q values) =>\n      @Computability.Encoding.encode.{0, 0} (Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.Input q) Bool\n        (Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.inputEncoding q)\n        (@Counting.Algorithm.ProductFinitePalette.Input.compile K inst q values I))\n    (fun (bits : List.{0} Bool) =>\n      @Option.map.{0, 0}\n        (@Sigma.{0, 0} Nat fun (n : Nat) =>\n          List.{0} (Holant.LocalDrafts.Tractability.ProductElimination.LabelledFactor.{0} (Fin q) n))\n        (@Counting.Algorithm.ProductFinitePalette.Input K inst q values)\n        (@Counting.Algorithm.ProductFinitePalette.restore K inst q values)\n        (@Computability.Encoding.decode.{0, 0} (Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.Input q)\n          Bool (Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.inputEncoding q) bits))\n    (@Counting.Algorithm.ProductFinitePalette.inputEncoding._proof_1 K inst q values)","type":"{K : Type} →\n  [inst : CommSemiring.{0} K] →\n    {q : Nat} →\n      (values : Fin q → K) →\n        Computability.Encoding.{0, 0} (@Counting.Algorithm.ProductFinitePalette.Input K inst q values) Bool"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.language","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Input","kind":"definition","module":"Counting.Algorithm.ProductFinitePalette.Input","name":"Counting.Algorithm.ProductFinitePalette.language","name_semantics":"actual named kernel declaration","readable_type":"{K : Type} →\n  [CommSemiring K] → {q : Nat} → (Fin q → K) → Counting.Model.Language Bool K (Counting.Algorithm.Product.Label (Fin q))","role":"public","source_line":19,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Input.lean","source_sha256":"95a7eaa28cdaac2ee319e67d149bf698be42077aeb1c4077a61bc6fb91428097","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Input.lean#L19","specification":"fun {K : Type} [inst : CommSemiring.{0} K] {q : Nat} (values : Fin q → K) =>\n  @Counting.Model.Language.mk Bool K (Counting.Algorithm.Product.Label (Fin q))\n    (@Counting.Algorithm.Product.Label.arity (Fin q))\n    fun (x : Counting.Algorithm.Product.Label (Fin q))\n      (x_1 : Fin (@Counting.Algorithm.Product.Label.arity (Fin q) x) → Bool) =>\n    @Counting.Algorithm.ProductFinitePalette.language.match_1.{1} q\n      (fun (x : Counting.Algorithm.Product.Label (Fin q))\n          (x_2 : Fin (@Counting.Algorithm.Product.Label.arity (Fin q) x) → Bool) =>\n        K)\n      x x_1\n      (fun (c : Fin q)\n          (x :\n            Fin (@Counting.Algorithm.Product.Label.arity (Fin q) (@Counting.Algorithm.Product.Label.scalar (Fin q) c)) →\n              Bool) =>\n        values c)\n      (fun (f t : Fin q)\n          (x :\n            Fin\n                (@Counting.Algorithm.Product.Label.arity (Fin q)\n                  (@Counting.Algorithm.Product.Label.unary (Fin q) f t)) →\n              Bool) =>\n        @ite.{1} K\n          (@Eq.{1} Bool\n            (x\n              (@OfNat.ofNat.{0}\n                (Fin\n                  (@Counting.Algorithm.Product.Label.arity (Fin q)\n                    (@Counting.Algorithm.Product.Label.unary (Fin q) f t)))\n                (nat_lit 0)\n                (@Fin.instOfNat\n                  (@Counting.Algorithm.Product.Label.arity (Fin q)\n                    (@Counting.Algorithm.Product.Label.unary (Fin q) f t))\n                  Counting.Algorithm.ProductFinitePalette.language._proof_1 (nat_lit 0))))\n            Bool.true)\n          (instDecidableEqBool\n            (x\n              (@OfNat.ofNat.{0}\n                (Fin\n                  (@Counting.Algorithm.Product.Label.arity (Fin q)\n                    (@Counting.Algorithm.Product.Label.unary (Fin q) f t)))\n                (nat_lit 0)\n                (@Fin.instOfNat\n                  (@Counting.Algorithm.Product.Label.arity (Fin q)\n                    (@Counting.Algorithm.Product.Label.unary (Fin q) f t))\n                  Counting.Algorithm.ProductFinitePalette.language._proof_1 (nat_lit 0))))\n            Bool.true)\n          (values t) (values f))\n      (fun\n          (x :\n            Fin (@Counting.Algorithm.Product.Label.arity (Fin q) (@Counting.Algorithm.Product.Label.equality (Fin q))) →\n              Bool) =>\n        @ite.{1} K\n          (@Eq.{1} Bool\n            (x\n              (@OfNat.ofNat.{0}\n                (Fin\n                  (@Counting.Algorithm.Product.Label.arity (Fin q)\n                    (@Counting.Algorithm.Product.Label.equality (Fin q))))\n                (nat_lit 0)\n                (@Fin.instOfNat\n                  (@Counting.Algorithm.Product.Label.arity (Fin q) (@Counting.Algorithm.Product.Label.equality (Fin q)))\n                  Counting.Algorithm.ProductFinitePalette.language._proof_2 (nat_lit 0))))\n            (x\n              (@OfNat.ofNat.{0}\n                (Fin\n                  (@Counting.Algorithm.Product.Label.arity (Fin q)\n                    (@Counting.Algorithm.Product.Label.equality (Fin q))))\n                (nat_lit 1)\n                (@Fin.instOfNat\n                  (@Counting.Algorithm.Product.Label.arity (Fin q) (@Counting.Algorithm.Product.Label.equality (Fin q)))\n                  Counting.Algorithm.ProductFinitePalette.language._proof_2 (nat_lit 1)))))\n          (instDecidableEqBool\n            (x\n              (@OfNat.ofNat.{0}\n                (Fin\n                  (@Counting.Algorithm.Product.Label.arity (Fin q)\n                    (@Counting.Algorithm.Product.Label.equality (Fin q))))\n                (nat_lit 0)\n                (@Fin.instOfNat\n                  (@Counting.Algorithm.Product.Label.arity (Fin q) (@Counting.Algorithm.Product.Label.equality (Fin q)))\n                  Counting.Algorithm.ProductFinitePalette.language._proof_2 (nat_lit 0))))\n            (x\n              (@OfNat.ofNat.{0}\n                (Fin\n                  (@Counting.Algorithm.Product.Label.arity (Fin q)\n                    (@Counting.Algorithm.Product.Label.equality (Fin q))))\n                (nat_lit 1)\n                (@Fin.instOfNat\n                  (@Counting.Algorithm.Product.Label.arity (Fin q) (@Counting.Algorithm.Product.Label.equality (Fin q)))\n                  Counting.Algorithm.ProductFinitePalette.language._proof_2 (nat_lit 1)))))\n          (@OfNat.ofNat.{0} K (nat_lit 1)\n            (@One.toOfNat1.{0} K\n              (@AddMonoidWithOne.toOne.{0} K\n                (@AddCommMonoidWithOne.toAddMonoidWithOne.{0} K\n                  (@NonAssocSemiring.toAddCommMonoidWithOne.{0} K\n                    (@Semiring.toNonAssocSemiring.{0} K (@CommSemiring.toSemiring.{0} K inst)))))))\n          (@OfNat.ofNat.{0} K (nat_lit 0)\n            (@Zero.toOfNat0.{0} K\n              (@MulZeroClass.toZero.{0} K (@instMulZeroClassOfSemiring.{0} K (@CommSemiring.toSemiring.{0} K inst))))))\n      fun\n        (x :\n          Fin\n              (@Counting.Algorithm.Product.Label.arity (Fin q)\n                (@Counting.Algorithm.Product.Label.disequality (Fin q))) →\n            Bool) =>\n      @ite.{1} K\n        (@Ne.{1} Bool\n          (x\n            (@OfNat.ofNat.{0}\n              (Fin\n                (@Counting.Algorithm.Product.Label.arity (Fin q)\n                  (@Counting.Algorithm.Product.Label.disequality (Fin q))))\n              (nat_lit 0)\n              (@Fin.instOfNat\n                (@Counting.Algorithm.Product.Label.arity (Fin q)\n                  (@Counting.Algorithm.Product.Label.disequality (Fin q)))\n                Counting.Algorithm.ProductFinitePalette.language._proof_2 (nat_lit 0))))\n          (x\n            (@OfNat.ofNat.{0}\n              (Fin\n                (@Counting.Algorithm.Product.Label.arity (Fin q)\n                  (@Counting.Algorithm.Product.Label.disequality (Fin q))))\n              (nat_lit 1)\n              (@Fin.instOfNat\n                (@Counting.Algorithm.Product.Label.arity (Fin q)\n                  (@Counting.Algorithm.Product.Label.disequality (Fin q)))\n                Counting.Algorithm.ProductFinitePalette.language._proof_2 (nat_lit 1)))))\n        (@instDecidableNot\n          (@Eq.{1} Bool\n            (x\n              (@OfNat.ofNat.{0}\n                (Fin\n                  (@Counting.Algorithm.Product.Label.arity (Fin q)\n                    (@Counting.Algorithm.Product.Label.disequality (Fin q))))\n                (nat_lit 0)\n                (@Fin.instOfNat\n                  (@Counting.Algorithm.Product.Label.arity (Fin q)\n                    (@Counting.Algorithm.Product.Label.disequality (Fin q)))\n                  Counting.Algorithm.ProductFinitePalette.language._proof_2 (nat_lit 0))))\n            (x\n              (@OfNat.ofNat.{0}\n                (Fin\n                  (@Counting.Algorithm.Product.Label.arity (Fin q)\n                    (@Counting.Algorithm.Product.Label.disequality (Fin q))))\n                (nat_lit 1)\n                (@Fin.instOfNat\n                  (@Counting.Algorithm.Product.Label.arity (Fin q)\n                    (@Counting.Algorithm.Product.Label.disequality (Fin q)))\n                  Counting.Algorithm.ProductFinitePalette.language._proof_2 (nat_lit 1)))))\n          (instDecidableEqBool\n            (x\n              (@OfNat.ofNat.{0}\n                (Fin\n                  (@Counting.Algorithm.Product.Label.arity (Fin q)\n                    (@Counting.Algorithm.Product.Label.disequality (Fin q))))\n                (nat_lit 0)\n                (@Fin.instOfNat\n                  (@Counting.Algorithm.Product.Label.arity (Fin q)\n                    (@Counting.Algorithm.Product.Label.disequality (Fin q)))\n                  Counting.Algorithm.ProductFinitePalette.language._proof_2 (nat_lit 0))))\n            (x\n              (@OfNat.ofNat.{0}\n                (Fin\n                  (@Counting.Algorithm.Product.Label.arity (Fin q)\n                    (@Counting.Algorithm.Product.Label.disequality (Fin q))))\n                (nat_lit 1)\n                (@Fin.instOfNat\n                  (@Counting.Algorithm.Product.Label.arity (Fin q)\n                    (@Counting.Algorithm.Product.Label.disequality (Fin q)))\n                  Counting.Algorithm.ProductFinitePalette.language._proof_2 (nat_lit 1))))))\n        (@OfNat.ofNat.{0} K (nat_lit 1)\n          (@One.toOfNat1.{0} K\n            (@AddMonoidWithOne.toOne.{0} K\n              (@AddCommMonoidWithOne.toAddMonoidWithOne.{0} K\n                (@NonAssocSemiring.toAddCommMonoidWithOne.{0} K\n                  (@Semiring.toNonAssocSemiring.{0} K (@CommSemiring.toSemiring.{0} K inst)))))))\n        (@OfNat.ofNat.{0} K (nat_lit 0)\n          (@Zero.toOfNat0.{0} K\n            (@MulZeroClass.toZero.{0} K (@instMulZeroClassOfSemiring.{0} K (@CommSemiring.toSemiring.{0} K inst)))))","type":"{K : Type} →\n  [CommSemiring.{0} K] →\n    {q : Nat} → (values : Fin q → K) → Counting.Model.Language Bool K (Counting.Algorithm.Product.Label (Fin q))"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.outputs_partition","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Machine","kind":"definition","module":"Counting.Algorithm.ProductFinitePalette.Machine","name":"Counting.Algorithm.ProductFinitePalette.outputs_partition","name_semantics":"actual named kernel declaration","readable_type":"{K : Type} →\n  [inst : Field K] →\n    [inst_1 : Algebra Rat K] →\n      {q d : Nat} →\n        (F : Holant.Algebraic.FixedField K d) →\n          (table : Fin q → Fin d → Rat) →\n            (I :\n                Counting.Algorithm.ProductFinitePalette.Input\n                  (Counting.Algorithm.ProductFinitePalette.coefficients F table)) →\n              Turing.TM2OutputsInTime (Counting.Algorithm.ProductFinitePalette.computes F table).machine.computer\n                ((Counting.Algorithm.ProductFinitePalette.inputEncoding\n                      (Counting.Algorithm.ProductFinitePalette.coefficients F table)).encode\n                  I)\n                (Option.some\n                  (F.encoding.encode\n                    (Counting.Algorithm.ProductFinitePalette.Input.partition\n                      (Counting.Algorithm.ProductFinitePalette.coefficients F table) I)))\n                (Polynomial.eval\n                  ((Counting.Algorithm.ProductFinitePalette.inputEncoding\n                          (Counting.Algorithm.ProductFinitePalette.coefficients F table)).encode\n                      I).length\n                  (Counting.Algorithm.ProductFinitePalette.computes F table).time)","role":"public","source_line":96,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean","source_sha256":"5043ab4a58b37d7d0fd168d53fb14b8f4e376bf134d88bbdd82463cf350c991e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean#L96","type":"{K : Type} →\n  [inst : Field.{0} K] →\n    [inst_1 :\n        @Algebra.{0, 0} Rat K Rat.commSemiring\n          (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))] →\n      {q d : Nat} →\n        (F : @Holant.Algebraic.FixedField.{0} K inst inst_1 d) →\n          (table : Fin q → Fin d → Rat) →\n            (I :\n                @Counting.Algorithm.ProductFinitePalette.Input K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table)) →\n              Turing.TM2OutputsInTime\n                (Holant.Complexity.BinaryCompose.Machine.computer\n                  (@Holant.Complexity.BinaryCompose.Computes.machine\n                    (@Counting.Algorithm.ProductFinitePalette.Input K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    K\n                    (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                    (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table)))\n                (@Computability.Encoding.encode.{0, 0}\n                  (@Counting.Algorithm.ProductFinitePalette.Input K\n                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                  Bool\n                  (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                  I)\n                (@Option.some.{0}\n                  (List.{0}\n                    (Turing.FinTM2.Γ\n                      (Holant.Complexity.BinaryCompose.Machine.computer\n                        (@Holant.Complexity.BinaryCompose.Computes.machine\n                          (@Counting.Algorithm.ProductFinitePalette.Input K\n                            (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                            (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                          K\n                          (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                            (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                            (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                          (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                          (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                            (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                            (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                          (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table)))\n                      (Turing.FinTM2.k₁\n                        (Holant.Complexity.BinaryCompose.Machine.computer\n                          (@Holant.Complexity.BinaryCompose.Computes.machine\n                            (@Counting.Algorithm.ProductFinitePalette.Input K\n                              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                            K\n                            (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                            (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                            (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                            (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))))\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                    (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table) I)))\n                (@Polynomial.eval.{0} Nat Nat.instSemiring\n                  (@List.length.{0} Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (@Counting.Algorithm.ProductFinitePalette.Input K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                        (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                      Bool\n                      (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                        (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                      I))\n                  (@Holant.Complexity.BinaryCompose.Computes.time\n                    (@Counting.Algorithm.ProductFinitePalette.Input K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    K\n                    (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                    (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table)))"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.primitive_bound","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Machine","kind":"theorem","module":"Counting.Algorithm.ProductFinitePalette.Machine","name":"Counting.Algorithm.ProductFinitePalette.primitive_bound","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {q d : Nat} (F : Holant.Algebraic.FixedField K d)\n  (table : Fin q → Fin d → Rat)\n  (I : Counting.Algorithm.ProductFinitePalette.Input (Counting.Algorithm.ProductFinitePalette.coefficients F table)),\n  instLENat.le\n    (Holant.Complexity.FixedFieldMachines.primitiveCost\n      (Counting.Algorithm.ProductFinitePalette.computes F table).machine\n      ((Counting.Algorithm.ProductFinitePalette.computes F table).outputs I).steps\n      (Option.some\n        (Turing.initList (Counting.Algorithm.ProductFinitePalette.computes F table).machine.computer\n          ((Counting.Algorithm.ProductFinitePalette.inputEncoding\n                (Counting.Algorithm.ProductFinitePalette.coefficients F table)).encode\n            I))))\n    (Polynomial.eval\n      ((Counting.Algorithm.ProductFinitePalette.inputEncoding\n              (Counting.Algorithm.ProductFinitePalette.coefficients F table)).encode\n          I).length\n      (Holant.Complexity.FixedFieldMachines.primitivePolynomial\n        (Counting.Algorithm.ProductFinitePalette.computes F table)))","role":"public","source_line":110,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean","source_sha256":"5043ab4a58b37d7d0fd168d53fb14b8f4e376bf134d88bbdd82463cf350c991e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean#L110","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {q d : Nat} (F : @Holant.Algebraic.FixedField.{0} K inst inst_1 d) (table : Fin q → Fin d → Rat)\n  (I :\n    @Counting.Algorithm.ProductFinitePalette.Input K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table)),\n  @LE.le.{0} Nat instLENat\n    (Holant.Complexity.FixedFieldMachines.primitiveCost\n      (@Holant.Complexity.BinaryCompose.Computes.machine\n        (@Counting.Algorithm.ProductFinitePalette.Input K\n          (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n          (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n        K\n        (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n          (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n          (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n        (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n        (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n          (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n          (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n        (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))\n      (@StateTransition.EvalsTo.steps.{0}\n        (Turing.FinTM2.Cfg\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Counting.Algorithm.ProductFinitePalette.Input K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              K\n              (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n              (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))\n        (Turing.FinTM2.step\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Counting.Algorithm.ProductFinitePalette.Input K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              K\n              (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n              (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))\n        (Turing.initList\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Counting.Algorithm.ProductFinitePalette.Input K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              K\n              (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n              (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table)))\n          (@Computability.Encoding.encode.{0, 0}\n            (@Counting.Algorithm.ProductFinitePalette.Input K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            Bool\n            (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            I))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (Holant.Complexity.BinaryCompose.Machine.computer\n                (@Holant.Complexity.BinaryCompose.Computes.machine\n                  (@Counting.Algorithm.ProductFinitePalette.Input K\n                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                  K\n                  (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                  (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                  (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                  (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table)))\n              (Turing.FinTM2.k₁\n                (Holant.Complexity.BinaryCompose.Machine.computer\n                  (@Holant.Complexity.BinaryCompose.Computes.machine\n                    (@Counting.Algorithm.ProductFinitePalette.Input K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    K\n                    (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                    (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))))\n          (Turing.FinTM2.Cfg\n            (Holant.Complexity.BinaryCompose.Machine.computer\n              (@Holant.Complexity.BinaryCompose.Computes.machine\n                (@Counting.Algorithm.ProductFinitePalette.Input K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                K\n                (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))\n          (Turing.haltList\n            (Holant.Complexity.BinaryCompose.Machine.computer\n              (@Holant.Complexity.BinaryCompose.Computes.machine\n                (@Counting.Algorithm.ProductFinitePalette.Input K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                K\n                (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (Holant.Complexity.BinaryCompose.Machine.computer\n                  (@Holant.Complexity.BinaryCompose.Computes.machine\n                    (@Counting.Algorithm.ProductFinitePalette.Input K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    K\n                    (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                    (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table)))\n                (Turing.FinTM2.k₁\n                  (Holant.Complexity.BinaryCompose.Machine.computer\n                    (@Holant.Complexity.BinaryCompose.Computes.machine\n                      (@Counting.Algorithm.ProductFinitePalette.Input K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                        (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                      K\n                      (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                        (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                      (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                      (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                        (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                      (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))))\n            (@Computability.Encoding.encode.{0, 0} K Bool (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n              (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table) I))))\n        (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n          (Turing.FinTM2.Cfg\n            (Holant.Complexity.BinaryCompose.Machine.computer\n              (@Holant.Complexity.BinaryCompose.Computes.machine\n                (@Counting.Algorithm.ProductFinitePalette.Input K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                K\n                (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))\n          (Turing.FinTM2.step\n            (Holant.Complexity.BinaryCompose.Machine.computer\n              (@Holant.Complexity.BinaryCompose.Computes.machine\n                (@Counting.Algorithm.ProductFinitePalette.Input K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                K\n                (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))\n          (Turing.initList\n            (Holant.Complexity.BinaryCompose.Machine.computer\n              (@Holant.Complexity.BinaryCompose.Computes.machine\n                (@Counting.Algorithm.ProductFinitePalette.Input K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                K\n                (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table)))\n            (@Computability.Encoding.encode.{0, 0}\n              (@Counting.Algorithm.ProductFinitePalette.Input K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              Bool\n              (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              I))\n          (@Option.map.{0, 0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (Holant.Complexity.BinaryCompose.Machine.computer\n                  (@Holant.Complexity.BinaryCompose.Computes.machine\n                    (@Counting.Algorithm.ProductFinitePalette.Input K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    K\n                    (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                    (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table)))\n                (Turing.FinTM2.k₁\n                  (Holant.Complexity.BinaryCompose.Machine.computer\n                    (@Holant.Complexity.BinaryCompose.Computes.machine\n                      (@Counting.Algorithm.ProductFinitePalette.Input K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                        (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                      K\n                      (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                        (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                      (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                      (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                        (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                      (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))))\n            (Turing.FinTM2.Cfg\n              (Holant.Complexity.BinaryCompose.Machine.computer\n                (@Holant.Complexity.BinaryCompose.Computes.machine\n                  (@Counting.Algorithm.ProductFinitePalette.Input K\n                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                  K\n                  (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                  (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                  (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                  (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))\n            (Turing.haltList\n              (Holant.Complexity.BinaryCompose.Machine.computer\n                (@Holant.Complexity.BinaryCompose.Computes.machine\n                  (@Counting.Algorithm.ProductFinitePalette.Input K\n                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                  K\n                  (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                  (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                  (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                  (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))\n            (@Option.some.{0}\n              (List.{0}\n                (Turing.FinTM2.Γ\n                  (Holant.Complexity.BinaryCompose.Machine.computer\n                    (@Holant.Complexity.BinaryCompose.Computes.machine\n                      (@Counting.Algorithm.ProductFinitePalette.Input K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                        (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                      K\n                      (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                        (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                      (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                      (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                        (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                      (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table)))\n                  (Turing.FinTM2.k₁\n                    (Holant.Complexity.BinaryCompose.Machine.computer\n                      (@Holant.Complexity.BinaryCompose.Computes.machine\n                        (@Counting.Algorithm.ProductFinitePalette.Input K\n                          (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                          (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                        K\n                        (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                          (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                          (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                        (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                        (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                          (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                          (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                        (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))))\n              (@Computability.Encoding.encode.{0, 0} K Bool\n                (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table) I))))\n          (@Polynomial.eval.{0} Nat Nat.instSemiring\n            (@List.length.{0} Bool\n              (@Computability.Encoding.encode.{0, 0}\n                (@Counting.Algorithm.ProductFinitePalette.Input K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                Bool\n                (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                I))\n            (@Holant.Complexity.BinaryCompose.Computes.time\n              (@Counting.Algorithm.ProductFinitePalette.Input K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              K\n              (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n              (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table)))\n          (@Holant.Complexity.BinaryCompose.Computes.outputs\n            (@Counting.Algorithm.ProductFinitePalette.Input K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            K\n            (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n            (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table) I)))\n      (@Option.some.{0}\n        (Holant.Complexity.BinaryCompose.Machine.Config\n          (@Holant.Complexity.BinaryCompose.Computes.machine\n            (@Counting.Algorithm.ProductFinitePalette.Input K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            K\n            (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n            (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table)))\n        (Turing.initList\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Counting.Algorithm.ProductFinitePalette.Input K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              K\n              (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n              (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table)))\n          (@Computability.Encoding.encode.{0, 0}\n            (@Counting.Algorithm.ProductFinitePalette.Input K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            Bool\n            (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            I))))\n    (@Polynomial.eval.{0} Nat Nat.instSemiring\n      (@List.length.{0} Bool\n        (@Computability.Encoding.encode.{0, 0}\n          (@Counting.Algorithm.ProductFinitePalette.Input K\n            (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n            (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n          Bool\n          (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n            (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n            (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n          I))\n      (@Holant.Complexity.FixedFieldMachines.primitivePolynomial\n        (@Counting.Algorithm.ProductFinitePalette.Input K\n          (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n          (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n        K\n        (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n          (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n          (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n        (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n        (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n          (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n          (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n        (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table)))"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.restore_input","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Input","kind":"theorem","module":"Counting.Algorithm.ProductFinitePalette.Input","name":"Counting.Algorithm.ProductFinitePalette.restore_input","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : CommSemiring K] {q : Nat} (values : Fin q → K)\n  (I : Counting.Algorithm.ProductFinitePalette.Input values),\n  Eq\n    (Counting.Algorithm.ProductFinitePalette.restore values\n      (Counting.Algorithm.ProductFinitePalette.Input.compile values I))\n    I","role":"public","source_line":154,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Input.lean","source_sha256":"95a7eaa28cdaac2ee319e67d149bf698be42077aeb1c4077a61bc6fb91428097","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Input.lean#L154","type":"∀ {K : Type} [inst : CommSemiring.{0} K] {q : Nat} (values : Fin q → K)\n  (I : @Counting.Algorithm.ProductFinitePalette.Input K inst q values),\n  @Eq.{1} (@Counting.Algorithm.ProductFinitePalette.Input K inst q values)\n    (@Counting.Algorithm.ProductFinitePalette.restore K inst q values\n      (@Counting.Algorithm.ProductFinitePalette.Input.compile K inst q values I))\n    I"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.same_machine","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Machine","kind":"theorem","module":"Counting.Algorithm.ProductFinitePalette.Machine","name":"Counting.Algorithm.ProductFinitePalette.same_machine","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {q d : Nat} (F : Holant.Algebraic.FixedField K d)\n  (table : Fin q → Fin d → Rat),\n  Eq (Counting.Algorithm.ProductFinitePalette.computes F table).machine\n    (Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.computes q F table).machine","role":"public","source_line":77,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean","source_sha256":"5043ab4a58b37d7d0fd168d53fb14b8f4e376bf134d88bbdd82463cf350c991e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean#L77","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {q d : Nat} (F : @Holant.Algebraic.FixedField.{0} K inst inst_1 d) (table : Fin q → Fin d → Rat),\n  @Eq.{2} Holant.Complexity.BinaryCompose.Machine\n    (@Holant.Complexity.BinaryCompose.Computes.machine\n      (@Counting.Algorithm.ProductFinitePalette.Input K\n        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n        (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n      K\n      (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n        (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n      (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n      (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n        (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n      (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))\n    (@Holant.Complexity.BinaryCompose.Computes.machine\n      (Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.Input q) K\n      (Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.inputEncoding q)\n      (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n      (@Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.answer q K inst inst_1 d F table)\n      (@Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.computes q K inst inst_1 d F table))"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.same_time","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Machine","kind":"theorem","module":"Counting.Algorithm.ProductFinitePalette.Machine","name":"Counting.Algorithm.ProductFinitePalette.same_time","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {q d : Nat} (F : Holant.Algebraic.FixedField K d)\n  (table : Fin q → Fin d → Rat),\n  Eq (Counting.Algorithm.ProductFinitePalette.computes F table).time\n    (Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.computes q F table).time","role":"public","source_line":81,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean","source_sha256":"5043ab4a58b37d7d0fd168d53fb14b8f4e376bf134d88bbdd82463cf350c991e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean#L81","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {q d : Nat} (F : @Holant.Algebraic.FixedField.{0} K inst inst_1 d) (table : Fin q → Fin d → Rat),\n  @Eq.{1} (@Polynomial.{0} Nat Nat.instSemiring)\n    (@Holant.Complexity.BinaryCompose.Computes.time\n      (@Counting.Algorithm.ProductFinitePalette.Input K\n        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n        (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n      K\n      (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n        (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n      (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n      (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n        (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n      (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))\n    (@Holant.Complexity.BinaryCompose.Computes.time\n      (Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.Input q) K\n      (Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.inputEncoding q)\n      (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n      (@Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.answer q K inst inst_1 d F table)\n      (@Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.computes q K inst inst_1 d F table))"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.transitions_le","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Machine","kind":"theorem","module":"Counting.Algorithm.ProductFinitePalette.Machine","name":"Counting.Algorithm.ProductFinitePalette.transitions_le","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {q d : Nat} (F : Holant.Algebraic.FixedField K d)\n  (table : Fin q → Fin d → Rat)\n  (I : Counting.Algorithm.ProductFinitePalette.Input (Counting.Algorithm.ProductFinitePalette.coefficients F table)),\n  instLENat.le ((Counting.Algorithm.ProductFinitePalette.computes F table).outputs I).steps\n    (Polynomial.eval\n      ((Counting.Algorithm.ProductFinitePalette.inputEncoding\n              (Counting.Algorithm.ProductFinitePalette.coefficients F table)).encode\n          I).length\n      (Counting.Algorithm.ProductFinitePalette.computes F table).time)","role":"public","source_line":103,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean","source_sha256":"5043ab4a58b37d7d0fd168d53fb14b8f4e376bf134d88bbdd82463cf350c991e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean#L103","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {q d : Nat} (F : @Holant.Algebraic.FixedField.{0} K inst inst_1 d) (table : Fin q → Fin d → Rat)\n  (I :\n    @Counting.Algorithm.ProductFinitePalette.Input K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table)),\n  @LE.le.{0} Nat instLENat\n    (@StateTransition.EvalsTo.steps.{0}\n      (Turing.FinTM2.Cfg\n        (Holant.Complexity.BinaryCompose.Machine.computer\n          (@Holant.Complexity.BinaryCompose.Computes.machine\n            (@Counting.Algorithm.ProductFinitePalette.Input K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            K\n            (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n            (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))\n      (Turing.FinTM2.step\n        (Holant.Complexity.BinaryCompose.Machine.computer\n          (@Holant.Complexity.BinaryCompose.Computes.machine\n            (@Counting.Algorithm.ProductFinitePalette.Input K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            K\n            (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n            (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))\n      (Turing.initList\n        (Holant.Complexity.BinaryCompose.Machine.computer\n          (@Holant.Complexity.BinaryCompose.Computes.machine\n            (@Counting.Algorithm.ProductFinitePalette.Input K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            K\n            (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n            (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table)))\n        (@Computability.Encoding.encode.{0, 0}\n          (@Counting.Algorithm.ProductFinitePalette.Input K\n            (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n            (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n          Bool\n          (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n            (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n            (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n          I))\n      (@Option.map.{0, 0}\n        (List.{0}\n          (Turing.FinTM2.Γ\n            (Holant.Complexity.BinaryCompose.Machine.computer\n              (@Holant.Complexity.BinaryCompose.Computes.machine\n                (@Counting.Algorithm.ProductFinitePalette.Input K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                K\n                (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table)))\n            (Turing.FinTM2.k₁\n              (Holant.Complexity.BinaryCompose.Machine.computer\n                (@Holant.Complexity.BinaryCompose.Computes.machine\n                  (@Counting.Algorithm.ProductFinitePalette.Input K\n                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                  K\n                  (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                  (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                  (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                  (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))))\n        (Turing.FinTM2.Cfg\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Counting.Algorithm.ProductFinitePalette.Input K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              K\n              (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n              (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))\n        (Turing.haltList\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Counting.Algorithm.ProductFinitePalette.Input K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              K\n              (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n              (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))\n        (@Option.some.{0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (Holant.Complexity.BinaryCompose.Machine.computer\n                (@Holant.Complexity.BinaryCompose.Computes.machine\n                  (@Counting.Algorithm.ProductFinitePalette.Input K\n                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                  K\n                  (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                  (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                  (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                  (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table)))\n              (Turing.FinTM2.k₁\n                (Holant.Complexity.BinaryCompose.Machine.computer\n                  (@Holant.Complexity.BinaryCompose.Computes.machine\n                    (@Counting.Algorithm.ProductFinitePalette.Input K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    K\n                    (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                    (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))))\n          (@Computability.Encoding.encode.{0, 0} K Bool (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n            (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table) I))))\n      (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n        (Turing.FinTM2.Cfg\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Counting.Algorithm.ProductFinitePalette.Input K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              K\n              (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n              (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))\n        (Turing.FinTM2.step\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Counting.Algorithm.ProductFinitePalette.Input K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              K\n              (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n              (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))\n        (Turing.initList\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Counting.Algorithm.ProductFinitePalette.Input K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              K\n              (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n              (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table)))\n          (@Computability.Encoding.encode.{0, 0}\n            (@Counting.Algorithm.ProductFinitePalette.Input K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            Bool\n            (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            I))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (Holant.Complexity.BinaryCompose.Machine.computer\n                (@Holant.Complexity.BinaryCompose.Computes.machine\n                  (@Counting.Algorithm.ProductFinitePalette.Input K\n                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                  K\n                  (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                  (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                  (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                    (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                    (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                  (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table)))\n              (Turing.FinTM2.k₁\n                (Holant.Complexity.BinaryCompose.Machine.computer\n                  (@Holant.Complexity.BinaryCompose.Computes.machine\n                    (@Counting.Algorithm.ProductFinitePalette.Input K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    K\n                    (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                    (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))))\n          (Turing.FinTM2.Cfg\n            (Holant.Complexity.BinaryCompose.Machine.computer\n              (@Holant.Complexity.BinaryCompose.Computes.machine\n                (@Counting.Algorithm.ProductFinitePalette.Input K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                K\n                (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))\n          (Turing.haltList\n            (Holant.Complexity.BinaryCompose.Machine.computer\n              (@Holant.Complexity.BinaryCompose.Computes.machine\n                (@Counting.Algorithm.ProductFinitePalette.Input K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                K\n                (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                  (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                  (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (Holant.Complexity.BinaryCompose.Machine.computer\n                  (@Holant.Complexity.BinaryCompose.Computes.machine\n                    (@Counting.Algorithm.ProductFinitePalette.Input K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    K\n                    (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                    (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                      (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                      (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                    (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table)))\n                (Turing.FinTM2.k₁\n                  (Holant.Complexity.BinaryCompose.Machine.computer\n                    (@Holant.Complexity.BinaryCompose.Computes.machine\n                      (@Counting.Algorithm.ProductFinitePalette.Input K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                        (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                      K\n                      (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                        (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                      (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                      (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                        (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                        (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n                      (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table))))))\n            (@Computability.Encoding.encode.{0, 0} K Bool (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n              (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table) I))))\n        (@Polynomial.eval.{0} Nat Nat.instSemiring\n          (@List.length.{0} Bool\n            (@Computability.Encoding.encode.{0, 0}\n              (@Counting.Algorithm.ProductFinitePalette.Input K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              Bool\n              (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n                (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n                (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n              I))\n          (@Holant.Complexity.BinaryCompose.Computes.time\n            (@Counting.Algorithm.ProductFinitePalette.Input K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            K\n            (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n            (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n              (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n              (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n            (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table)))\n        (@Holant.Complexity.BinaryCompose.Computes.outputs\n          (@Counting.Algorithm.ProductFinitePalette.Input K\n            (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n            (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n          K\n          (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n            (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n            (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n          (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n          (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n            (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n            (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n          (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table) I)))\n    (@Polynomial.eval.{0} Nat Nat.instSemiring\n      (@List.length.{0} Bool\n        (@Computability.Encoding.encode.{0, 0}\n          (@Counting.Algorithm.ProductFinitePalette.Input K\n            (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n            (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n          Bool\n          (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n            (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n            (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n          I))\n      (@Holant.Complexity.BinaryCompose.Computes.time\n        (@Counting.Algorithm.ProductFinitePalette.Input K\n          (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n          (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n        K\n        (@Counting.Algorithm.ProductFinitePalette.inputEncoding K\n          (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n          (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n        (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n        (@Counting.Algorithm.ProductFinitePalette.Input.partition K\n          (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)) q\n          (@Counting.Algorithm.ProductFinitePalette.coefficients K inst inst_1 q d F table))\n        (@Counting.Algorithm.ProductFinitePalette.computes K inst inst_1 q d F table)))"},{"category":"tools","display_name":"Counting.Algorithm.ProductFinitePalette.variableCount_le_inputLength","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Machine","kind":"theorem","module":"Counting.Algorithm.ProductFinitePalette.Machine","name":"Counting.Algorithm.ProductFinitePalette.variableCount_le_inputLength","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : CommSemiring K] {q : Nat} (values : Fin q → K)\n  (I : Counting.Algorithm.ProductFinitePalette.Input values),\n  instLENat.le I.variableCount ((Counting.Algorithm.ProductFinitePalette.inputEncoding values).encode I).length","role":"public","source_line":38,"source_path":"projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean","source_sha256":"5043ab4a58b37d7d0fd168d53fb14b8f4e376bf134d88bbdd82463cf350c991e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/product-machine-bridge/Counting/Algorithm/ProductFinitePalette/Machine.lean#L38","type":"∀ {K : Type} [inst : CommSemiring.{0} K] {q : Nat} (values : Fin q → K)\n  (I : @Counting.Algorithm.ProductFinitePalette.Input K inst q values),\n  @LE.le.{0} Nat instLENat (@Counting.Algorithm.ProductFinitePalette.Input.variableCount K inst q values I)\n    (@List.length.{0} Bool\n      (@Computability.Encoding.encode.{0, 0} (@Counting.Algorithm.ProductFinitePalette.Input K inst q values) Bool\n        (@Counting.Algorithm.ProductFinitePalette.inputEncoding K inst q values) I))"},{"category":"core","display_name":"Counting.Algorithm.VariableElimination.evaluate_pinnedFactors","family":"core-variable-elimination","import":"Counting.Algorithm.VariableElimination.Bridge","kind":"theorem","module":"Counting.Algorithm.VariableElimination.Bridge","name":"Counting.Algorithm.VariableElimination.evaluate_pinnedFactors","readable_type":"∀ {B V D R ι : Type} {L : Counting.Model.Language D R ι} [inst : CommSemiring R] [inst_1 : Fintype V]\n  [inst_2 : LinearOrder V] [inst_3 : Fintype D] [inst_4 : LinearOrder D]\n  (order : Counting.Algorithm.VariableElimination.EliminationOrder V) (I : Counting.Model.OpenInstance L B V)\n  (a : B → D), Eq (order.evaluate (Counting.Algorithm.VariableElimination.pinnedFactors I a)) (I.partition a)","role":"theorem","source_line":82,"source_path":"projects/variable-elimination/Counting/Algorithm/VariableElimination/Bridge.lean","source_sha256":"d00b8c54f383d1aa4b30374aadddf862e5eaeed9b915d3f10eac2e52ef04992a","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/variable-elimination/Counting/Algorithm/VariableElimination/Bridge.lean#L82","summary":"The actual supplied-order executor computes the S1 pinned partition table.","type":"∀ {B V D R ι : Type} {L : Counting.Model.Language D R ι} [inst : CommSemiring.{0} R] [inst_1 : Fintype.{0} V]\n  [inst_2 : LinearOrder.{0} V] [inst_3 : Fintype.{0} D] [inst_4 : LinearOrder.{0} D]\n  (order : Counting.Algorithm.VariableElimination.EliminationOrder V) (I : @Counting.Model.OpenInstance D R ι L B V)\n  (a : B → D),\n  @Eq.{1} R\n    (@Counting.Algorithm.VariableElimination.EliminationOrder.evaluate D R inst inst_3 inst_4 V inst_1 inst_2 order\n      (@Counting.Algorithm.VariableElimination.pinnedFactors B V D R ι L I a))\n    (@Counting.Model.OpenInstance.partition D R ι B V L inst inst_3 inst_1\n      (fun (a b : V) => @LinearOrder.toDecidableEq.{0} V inst_2 a b) I a)"},{"category":"core","display_name":"Counting.Algorithm.VariableElimination.pinnedFactors","family":"core-variable-elimination","import":"Counting.Algorithm.VariableElimination.Bridge","kind":"definition","module":"Counting.Algorithm.VariableElimination.Bridge","name":"Counting.Algorithm.VariableElimination.pinnedFactors","readable_type":"{B V D R ι : Type} →\n  {L : Counting.Model.Language D R ι} →\n    Counting.Model.OpenInstance L B V → (B → D) → List (Counting.Algorithm.VariableElimination.Factor V D R)","role":"definition","source_line":63,"source_path":"projects/variable-elimination/Counting/Algorithm/VariableElimination/Bridge.lean","source_sha256":"d00b8c54f383d1aa4b30374aadddf862e5eaeed9b915d3f10eac2e52ef04992a","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/variable-elimination/Counting/Algorithm/VariableElimination/Bridge.lean#L63","summary":"Pin every occurrence independently, preserving list order and multiplicity.","type":"{B V D R ι : Type} →\n  {L : Counting.Model.Language D R ι} →\n    (I : @Counting.Model.OpenInstance D R ι L B V) →\n      (a : B → D) → List.{0} (Counting.Algorithm.VariableElimination.Factor V D R)"},{"category":"core","display_name":"Counting.Algorithm.VariableElimination.run_pinnedFactors","family":"core-variable-elimination","import":"Counting.Algorithm.VariableElimination.Bridge","kind":"theorem","module":"Counting.Algorithm.VariableElimination.Bridge","name":"Counting.Algorithm.VariableElimination.run_pinnedFactors","readable_type":"∀ {B V D R ι : Type} {L : Counting.Model.Language D R ι} [inst : CommSemiring R] [inst_1 : Fintype V]\n  [inst_2 : LinearOrder V] [inst_3 : Fintype D] [inst_4 : LinearOrder D] (I : Counting.Model.OpenInstance L B V)\n  (a : B → D),\n  Eq\n    (Counting.Algorithm.VariableElimination.EliminationOrder.run\n      (Counting.Algorithm.VariableElimination.pinnedFactors I a))\n    (I.partition a)","role":"theorem","source_line":89,"source_path":"projects/variable-elimination/Counting/Algorithm/VariableElimination/Bridge.lean","source_sha256":"d00b8c54f383d1aa4b30374aadddf862e5eaeed9b915d3f10eac2e52ef04992a","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/variable-elimination/Counting/Algorithm/VariableElimination/Bridge.lean#L89","summary":"The canonical executable evaluator is correct at every S1 boundary assignment.","type":"∀ {B V D R ι : Type} {L : Counting.Model.Language D R ι} [inst : CommSemiring.{0} R] [inst_1 : Fintype.{0} V]\n  [inst_2 : LinearOrder.{0} V] [inst_3 : Fintype.{0} D] [inst_4 : LinearOrder.{0} D]\n  (I : @Counting.Model.OpenInstance D R ι L B V) (a : B → D),\n  @Eq.{1} R\n    (@Counting.Algorithm.VariableElimination.EliminationOrder.run V D R inst inst_3 inst_4 inst_1 inst_2\n      (@Counting.Algorithm.VariableElimination.pinnedFactors B V D R ι L I a))\n    (@Counting.Model.OpenInstance.partition D R ι B V L inst inst_3 inst_1\n      (fun (a b : V) => @LinearOrder.toDecidableEq.{0} V inst_2 a b) I a)"},{"category":"core","display_name":"Counting.Algorithm.VariableEliminationTreewidth.additions_evaluate_le","family":"core-elimination-width","import":"Counting.Algorithm.VariableEliminationTreewidth.Program","kind":"theorem","module":"Counting.Algorithm.VariableEliminationTreewidth.Program","name":"Counting.Algorithm.VariableEliminationTreewidth.additions_evaluate_le","readable_type":"∀ {V I R : Type} [inst : Fintype V] [inst_1 : LinearOrder V] [inst_2 : Fintype I] [inst_3 : LinearOrder I]\n  {tree : SimpleGraph I} [inst_4 : DecidableRel tree.Adj] {width q : Nat} [inst_5 : CommSemiring R]\n  (fs : List (Counting.Algorithm.VariableElimination.TabulatedFactor V (Fin q) R))\n  (d :\n    Counting.Algorithm.VariableEliminationTreewidth.TreeDecomposition\n      (Counting.Algorithm.VariableEliminationTreewidth.primalGraph\n        (List.map Counting.Algorithm.VariableElimination.TabulatedFactor.toFactor fs))\n      tree width),\n  instLENat.le (Counting.Algorithm.VariableEliminationTreewidth.evaluate fs d).work.coefficientAdditions\n    (instHMul.hMul (Counting.Algorithm.VariableEliminationWidth.rowCap q width) (instHMul.hMul q (Fintype.card V)))","role":"theorem","source_line":49,"source_path":"projects/variable-elimination-treewidth/Counting/Algorithm/VariableEliminationTreewidth/Program.lean","source_sha256":"b4d6b04b1e2498f2def478da4ab168c3f1813a27972831a977993df7ccd1d921","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/variable-elimination-treewidth/Counting/Algorithm/VariableEliminationTreewidth/Program.lean#L49","summary":"Additions evaluate le.","type":"∀ {V I R : Type} [inst : Fintype.{0} V] [inst_1 : LinearOrder.{0} V] [inst_2 : Fintype.{0} I]\n  [inst_3 : LinearOrder.{0} I] {tree : SimpleGraph.{0} I}\n  [inst_4 : @DecidableRel.{1, 1} I I (@SimpleGraph.Adj.{0} I tree)] {width q : Nat} [inst_5 : CommSemiring.{0} R]\n  (fs : List.{0} (@Counting.Algorithm.VariableElimination.TabulatedFactor V (Fin q) R (Fin.fintype q)))\n  (d :\n    @Counting.Algorithm.VariableEliminationTreewidth.TreeDecomposition V I\n      (@Counting.Algorithm.VariableEliminationTreewidth.primalGraph V (Fin q) R\n        (fun (a b : V) => @LinearOrder.toDecidableEq.{0} V inst_1 a b)\n        (@List.map.{0, 0} (@Counting.Algorithm.VariableElimination.TabulatedFactor V (Fin q) R (Fin.fintype q))\n          (Counting.Algorithm.VariableElimination.Factor V (Fin q) R)\n          (@Counting.Algorithm.VariableElimination.TabulatedFactor.toFactor V (Fin q) R (Fin.fintype q)\n            (@Fin.instLinearOrder q))\n          fs))\n      tree width),\n  @LE.le.{0} Nat instLENat\n    (Counting.Algorithm.VariableEliminationWork.Work.coefficientAdditions\n      (@Counting.Algorithm.VariableEliminationWork.Observed.work R\n        (@Counting.Algorithm.VariableEliminationTreewidth.evaluate V I R inst inst_1 inst_2 inst_3 tree inst_4 width q\n          inst_5 fs d)))\n    (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)\n      (Counting.Algorithm.VariableEliminationWidth.rowCap q width)\n      (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) q (@Fintype.card.{0} V inst)))"},{"category":"core","display_name":"Counting.Algorithm.VariableEliminationTreewidth.evaluate","family":"core-elimination-width","import":"Counting.Algorithm.VariableEliminationTreewidth.Program","kind":"definition","module":"Counting.Algorithm.VariableEliminationTreewidth.Program","name":"Counting.Algorithm.VariableEliminationTreewidth.evaluate","readable_type":"{V I R : Type} →\n  [Fintype V] →\n    [inst : LinearOrder V] →\n      [Fintype I] →\n        [LinearOrder I] →\n          {tree : SimpleGraph I} →\n            [DecidableRel tree.Adj] →\n              {width q : Nat} →\n                [CommSemiring R] →\n                  (fs : List (Counting.Algorithm.VariableElimination.TabulatedFactor V (Fin q) R)) →\n                    Counting.Algorithm.VariableEliminationTreewidth.TreeDecomposition\n                        (Counting.Algorithm.VariableEliminationTreewidth.primalGraph\n                          (List.map Counting.Algorithm.VariableElimination.TabulatedFactor.toFactor fs))\n                        tree width →\n                      Counting.Algorithm.VariableEliminationWork.Observed R","role":"definition","source_line":17,"source_path":"projects/variable-elimination-treewidth/Counting/Algorithm/VariableEliminationTreewidth/Program.lean","source_sha256":"b4d6b04b1e2498f2def478da4ab168c3f1813a27972831a977993df7ccd1d921","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/variable-elimination-treewidth/Counting/Algorithm/VariableEliminationTreewidth/Program.lean#L17","summary":"Construct both the graph-leaf bag listing and variable-elimination order, then run the same cached stored-table executor. The supplied decomposition is of the actual primal graph; no factor-bag witnesses are an input.","type":"{V I R : Type} →\n  [Fintype.{0} V] →\n    [inst : LinearOrder.{0} V] →\n      [Fintype.{0} I] →\n        [LinearOrder.{0} I] →\n          {tree : SimpleGraph.{0} I} →\n            [@DecidableRel.{1, 1} I I (@SimpleGraph.Adj.{0} I tree)] →\n              {width q : Nat} →\n                [CommSemiring.{0} R] →\n                  (fs :\n                      List.{0} (@Counting.Algorithm.VariableElimination.TabulatedFactor V (Fin q) R (Fin.fintype q))) →\n                    (d :\n                        @Counting.Algorithm.VariableEliminationTreewidth.TreeDecomposition V I\n                          (@Counting.Algorithm.VariableEliminationTreewidth.primalGraph V (Fin q) R\n                            (fun (a b : V) => @LinearOrder.toDecidableEq.{0} V inst a b)\n                            (@List.map.{0, 0}\n                              (@Counting.Algorithm.VariableElimination.TabulatedFactor V (Fin q) R (Fin.fintype q))\n                              (Counting.Algorithm.VariableElimination.Factor V (Fin q) R)\n                              (@Counting.Algorithm.VariableElimination.TabulatedFactor.toFactor V (Fin q) R\n                                (Fin.fintype q) (@Fin.instLinearOrder q))\n                              fs))\n                          tree width) →\n                      Counting.Algorithm.VariableEliminationWork.Observed R"},{"category":"core","display_name":"Counting.Algorithm.VariableEliminationTreewidth.value_evaluate","family":"core-elimination-width","import":"Counting.Algorithm.VariableEliminationTreewidth.Program","kind":"theorem","module":"Counting.Algorithm.VariableEliminationTreewidth.Program","name":"Counting.Algorithm.VariableEliminationTreewidth.value_evaluate","readable_type":"∀ {V I R : Type} [inst : Fintype V] [inst_1 : LinearOrder V] [inst_2 : Fintype I] [inst_3 : LinearOrder I]\n  {tree : SimpleGraph I} [inst_4 : DecidableRel tree.Adj] {width q : Nat} [inst_5 : CommSemiring R]\n  (fs : List (Counting.Algorithm.VariableElimination.TabulatedFactor V (Fin q) R))\n  (d :\n    Counting.Algorithm.VariableEliminationTreewidth.TreeDecomposition\n      (Counting.Algorithm.VariableEliminationTreewidth.primalGraph\n        (List.map Counting.Algorithm.VariableElimination.TabulatedFactor.toFactor fs))\n      tree width),\n  Eq (Counting.Algorithm.VariableEliminationTreewidth.evaluate fs d).value\n    (Counting.Algorithm.VariableElimination.partition\n      (List.map Counting.Algorithm.VariableElimination.TabulatedFactor.toFactor fs))","role":"theorem","source_line":22,"source_path":"projects/variable-elimination-treewidth/Counting/Algorithm/VariableEliminationTreewidth/Program.lean","source_sha256":"b4d6b04b1e2498f2def478da4ab168c3f1813a27972831a977993df7ccd1d921","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/variable-elimination-treewidth/Counting/Algorithm/VariableEliminationTreewidth/Program.lean#L22","summary":"Full finite partition semantics for the actual constructed-order evaluator.","type":"∀ {V I R : Type} [inst : Fintype.{0} V] [inst_1 : LinearOrder.{0} V] [inst_2 : Fintype.{0} I]\n  [inst_3 : LinearOrder.{0} I] {tree : SimpleGraph.{0} I}\n  [inst_4 : @DecidableRel.{1, 1} I I (@SimpleGraph.Adj.{0} I tree)] {width q : Nat} [inst_5 : CommSemiring.{0} R]\n  (fs : List.{0} (@Counting.Algorithm.VariableElimination.TabulatedFactor V (Fin q) R (Fin.fintype q)))\n  (d :\n    @Counting.Algorithm.VariableEliminationTreewidth.TreeDecomposition V I\n      (@Counting.Algorithm.VariableEliminationTreewidth.primalGraph V (Fin q) R\n        (fun (a b : V) => @LinearOrder.toDecidableEq.{0} V inst_1 a b)\n        (@List.map.{0, 0} (@Counting.Algorithm.VariableElimination.TabulatedFactor V (Fin q) R (Fin.fintype q))\n          (Counting.Algorithm.VariableElimination.Factor V (Fin q) R)\n          (@Counting.Algorithm.VariableElimination.TabulatedFactor.toFactor V (Fin q) R (Fin.fintype q)\n            (@Fin.instLinearOrder q))\n          fs))\n      tree width),\n  @Eq.{1} R\n    (@Counting.Algorithm.VariableEliminationWork.Observed.value R\n      (@Counting.Algorithm.VariableEliminationTreewidth.evaluate V I R inst inst_1 inst_2 inst_3 tree inst_4 width q\n        inst_5 fs d))\n    (@Counting.Algorithm.VariableElimination.partition V (Fin q) R inst_5 inst\n      (fun (a b : V) => @LinearOrder.toDecidableEq.{0} V inst_1 a b) (Fin.fintype q)\n      (@List.map.{0, 0} (@Counting.Algorithm.VariableElimination.TabulatedFactor V (Fin q) R (Fin.fintype q))\n        (Counting.Algorithm.VariableElimination.Factor V (Fin q) R)\n        (@Counting.Algorithm.VariableElimination.TabulatedFactor.toFactor V (Fin q) R (Fin.fintype q)\n          (@Fin.instLinearOrder q))\n        fs))"},{"category":"core","display_name":"Counting.Algorithm.VariableEliminationWork.evaluateStored","family":"core-cached-elimination","import":"Counting.Algorithm.VariableEliminationWork.Inputs","kind":"definition","module":"Counting.Algorithm.VariableEliminationWork.Inputs","name":"Counting.Algorithm.VariableEliminationWork.evaluateStored","readable_type":"{V R : Type} →\n  {q : Nat} →\n    [Fintype V] →\n      [LinearOrder V] →\n        [CommSemiring R] →\n          Counting.Algorithm.VariableElimination.EliminationOrder V →\n            List (Counting.Algorithm.VariableElimination.TabulatedFactor V (Fin q) R) →\n              Counting.Algorithm.VariableEliminationWork.Observed R","role":"definition","source_line":30,"source_path":"projects/variable-elimination-work/Counting/Algorithm/VariableEliminationWork/Inputs.lean","source_sha256":"81793a7e10e77b8f2e2c5e3d5ceb0cad7e4dcbb239f4a67bea1aa5db101f0da6","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/variable-elimination-work/Counting/Algorithm/VariableEliminationWork/Inputs.lean#L30","summary":"End-to-end stored-table evaluator. Initial preparation and every later callback observation are retained in the returned work, including the endpoint.","type":"{V R : Type} →\n  {q : Nat} →\n    [Fintype.{0} V] →\n      [LinearOrder.{0} V] →\n        [CommSemiring.{0} R] →\n          (order : Counting.Algorithm.VariableElimination.EliminationOrder V) →\n            (fs : List.{0} (@Counting.Algorithm.VariableElimination.TabulatedFactor V (Fin q) R (Fin.fintype q))) →\n              Counting.Algorithm.VariableEliminationWork.Observed R"},{"category":"core","display_name":"Counting.Algorithm.VariableEliminationWork.prepareInputs","family":"core-cached-elimination","import":"Counting.Algorithm.VariableEliminationWork.Inputs","kind":"definition","module":"Counting.Algorithm.VariableEliminationWork.Inputs","name":"Counting.Algorithm.VariableEliminationWork.prepareInputs","readable_type":"{V R : Type} →\n  {q : Nat} →\n    List (Counting.Algorithm.VariableElimination.TabulatedFactor V (Fin q) R) →\n      Counting.Algorithm.VariableEliminationWork.Observed\n        (List (Counting.Algorithm.VariableEliminationWork.ObservedFactor V (Fin q) R))","role":"definition","source_line":13,"source_path":"projects/variable-elimination-work/Counting/Algorithm/VariableEliminationWork/Inputs.lean","source_sha256":"81793a7e10e77b8f2e2c5e3d5ceb0cad7e4dcbb239f4a67bea1aa5db101f0da6","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/variable-elimination-work/Counting/Algorithm/VariableEliminationWork/Inputs.lean#L13","summary":"Prepare each stored input occurrence once. Duplicate occurrences and repeated ports retain their own state, and no stored coefficient is evaluated here.","type":"{V R : Type} →\n  {q : Nat} →\n    List.{0} (@Counting.Algorithm.VariableElimination.TabulatedFactor V (Fin q) R (Fin.fintype q)) →\n      Counting.Algorithm.VariableEliminationWork.Observed\n        (List.{0} (Counting.Algorithm.VariableEliminationWork.ObservedFactor V (Fin q) R))"},{"category":"core","display_name":"Counting.Algorithm.VariableEliminationWork.value_evaluateStored","family":"core-cached-elimination","import":"Counting.Algorithm.VariableEliminationWork.Inputs","kind":"theorem","module":"Counting.Algorithm.VariableEliminationWork.Inputs","name":"Counting.Algorithm.VariableEliminationWork.value_evaluateStored","readable_type":"∀ {V R : Type} {q : Nat} [inst : Fintype V] [inst_1 : LinearOrder V] [inst_2 : CommSemiring R]\n  (order : Counting.Algorithm.VariableElimination.EliminationOrder V)\n  (fs : List (Counting.Algorithm.VariableElimination.TabulatedFactor V (Fin q) R)),\n  Eq (Counting.Algorithm.VariableEliminationWork.evaluateStored order fs).value\n    (Counting.Algorithm.VariableElimination.partition\n      (List.map Counting.Algorithm.VariableElimination.TabulatedFactor.toFactor fs))","role":"theorem","source_line":36,"source_path":"projects/variable-elimination-work/Counting/Algorithm/VariableEliminationWork/Inputs.lean","source_sha256":"81793a7e10e77b8f2e2c5e3d5ceb0cad7e4dcbb239f4a67bea1aa5db101f0da6","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/variable-elimination-work/Counting/Algorithm/VariableEliminationWork/Inputs.lean#L36","summary":"Value evaluatestored.","type":"∀ {V R : Type} {q : Nat} [inst : Fintype.{0} V] [inst_1 : LinearOrder.{0} V] [inst_2 : CommSemiring.{0} R]\n  (order : Counting.Algorithm.VariableElimination.EliminationOrder V)\n  (fs : List.{0} (@Counting.Algorithm.VariableElimination.TabulatedFactor V (Fin q) R (Fin.fintype q))),\n  @Eq.{1} R\n    (@Counting.Algorithm.VariableEliminationWork.Observed.value R\n      (@Counting.Algorithm.VariableEliminationWork.evaluateStored V R q inst inst_1 inst_2 order fs))\n    (@Counting.Algorithm.VariableElimination.partition V (Fin q) R inst_2 inst\n      (fun (a b : V) => @LinearOrder.toDecidableEq.{0} V inst_1 a b) (Fin.fintype q)\n      (@List.map.{0, 0} (@Counting.Algorithm.VariableElimination.TabulatedFactor V (Fin q) R (Fin.fintype q))\n        (Counting.Algorithm.VariableElimination.Factor V (Fin q) R)\n        (@Counting.Algorithm.VariableElimination.TabulatedFactor.toFactor V (Fin q) R (Fin.fintype q)\n          (@Fin.instLinearOrder q))\n        fs))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden","family":"open","import":"Counting.Bridge.OpenNetwork.Assignments","kind":"definition","module":"Counting.Bridge.OpenNetwork.Assignments","name":"Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden","name_semantics":"actual named kernel declaration","readable_type":"{B P : Type} → Function.Embedding B P → Type","role":"public","source_line":12,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Assignments.lean","source_sha256":"97d422f5cd72992601974a32bfa6bb75286792870ad7189be60fa45e583eb55d","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Assignments.lean#L12","specification":"fun {B P : Type} (b : Function.Embedding.{1, 1} B P) =>\n  @Subtype.{1} P fun (p : P) =>\n    Not\n      (@Membership.mem.{0, 0} P (Set.{0} P) (@Set.instMembership.{0} P)\n        (@Set.range.{0, 1} P B\n          (@DFunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} B P) B (fun (x : B) => P)\n            (@Function.instFunLikeEmbedding.{1, 1} B P) b))\n        p)","type":"{B P : Type} → (b : Function.Embedding.{1, 1} B P) → Type"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.BoundaryComplement.assignments","family":"open","import":"Counting.Bridge.OpenNetwork.Assignments","kind":"definition","module":"Counting.Bridge.OpenNetwork.Assignments","name":"Counting.Bridge.OpenNetwork.BoundaryComplement.assignments","name_semantics":"actual named kernel declaration","readable_type":"{B P D : Type} →\n  (b : Function.Embedding B P) →\n    Equiv (P → D) (Prod (B → D) (Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden b → D))","role":"public","source_line":43,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Assignments.lean","source_sha256":"97d422f5cd72992601974a32bfa6bb75286792870ad7189be60fa45e583eb55d","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Assignments.lean#L43","type":"{B P D : Type} →\n  (b : Function.Embedding.{1, 1} B P) →\n    Equiv.{1, 1} (P → D) (Prod.{0, 0} (B → D) (@Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden B P b → D))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.BoundaryComplement.compatibleAssignments","family":"open","import":"Counting.Bridge.OpenNetwork.Assignments","kind":"definition","module":"Counting.Bridge.OpenNetwork.Assignments","name":"Counting.Bridge.OpenNetwork.BoundaryComplement.compatibleAssignments","name_semantics":"actual named kernel declaration","readable_type":"{B P D : Type} →\n  (b : Function.Embedding B P) →\n    (x : B → D) →\n      Equiv (Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden b → D)\n        (Subtype fun z => ∀ (j : B), Eq (z (Function.instFunLikeEmbedding.coe b j)) (x j))","role":"public","source_line":55,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Assignments.lean","source_sha256":"97d422f5cd72992601974a32bfa6bb75286792870ad7189be60fa45e583eb55d","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Assignments.lean#L55","type":"{B P D : Type} →\n  (b : Function.Embedding.{1, 1} B P) →\n    (x : B → D) →\n      Equiv.{1, 1} (@Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden B P b → D)\n        (@Subtype.{1} (P → D) fun (z : P → D) =>\n          ∀ (j : B),\n            @Eq.{1} D\n              (z\n                (@DFunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} B P) B (fun (x : B) => P)\n                  (@Function.instFunLikeEmbedding.{1, 1} B P) b j))\n              (x j))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.BoundaryComplement.sum_extend","family":"open","import":"Counting.Bridge.OpenNetwork.Assignments","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Assignments","name":"Counting.Bridge.OpenNetwork.BoundaryComplement.sum_extend","name_semantics":"actual named kernel declaration","readable_type":"∀ {B P D R : Type} [inst : Fintype B] [inst_1 : Fintype P] [inst_2 : Fintype D] [inst_3 : CommSemiring R]\n  (b : Function.Embedding B P) (x : B → D) (w : (P → D) → R),\n  Eq (Finset.univ.sum fun h => w (Counting.Bridge.OpenNetwork.BoundaryComplement.extend b x h))\n    (Finset.univ.sum fun z => ite (∀ (j : B), Eq (z (Function.instFunLikeEmbedding.coe b j)) (x j)) (w z) 0)","role":"public","source_line":69,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Assignments.lean","source_sha256":"97d422f5cd72992601974a32bfa6bb75286792870ad7189be60fa45e583eb55d","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Assignments.lean#L69","type":"∀ {B P D R : Type} [inst : Fintype.{0} B] [inst_1 : Fintype.{0} P] [inst_2 : Fintype.{0} D]\n  [inst_3 : CommSemiring.{0} R] (b : Function.Embedding.{1, 1} B P) (x : B → D) (w : (P → D) → R),\n  @Eq.{1} R\n    (@Finset.sum.{0, 0} (@Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden B P b → D) R\n      (@Semiring.toAddCommMonoid.{0} R (@CommSemiring.toSemiring.{0} R inst_3))\n      (@Finset.univ.{0} (@Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden B P b → D)\n        (@Pi.instFintype.{0, 0} (@Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden B P b)\n          (fun (a : @Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden B P b) => D)\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden B P b)\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden B P inst_1 b)\n          fun (a : @Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden B P b) => inst_2))\n      fun (h : @Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden B P b → D) =>\n      w (@Counting.Bridge.OpenNetwork.BoundaryComplement.extend B P D b x h))\n    (@Finset.sum.{0, 0} (P → D) R (@Semiring.toAddCommMonoid.{0} R (@CommSemiring.toSemiring.{0} R inst_3))\n      (@Finset.univ.{0} (P → D)\n        (@Pi.instFintype.{0, 0} P (fun (a : P) => D) (fun (a b : P) => Classical.propDecidable (@Eq.{1} P a b)) inst_1\n          fun (a : P) => inst_2))\n      fun (z : P → D) =>\n      @ite.{1} R\n        (∀ (j : B),\n          @Eq.{1} D\n            (z\n              (@DFunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} B P) B (fun (x : B) => P)\n                (@Function.instFunLikeEmbedding.{1, 1} B P) b j))\n            (x j))\n        (@Fintype.decidableForallFintype.{0} B\n          (fun (j : B) =>\n            @Eq.{1} D\n              (z\n                (@DFunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} B P) B (fun (x : B) => P)\n                  (@Function.instFunLikeEmbedding.{1, 1} B P) b j))\n              (x j))\n          (fun (a : B) =>\n            Classical.propDecidable\n              (@Eq.{1} D\n                (z\n                  (@DFunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} B P) B (fun (x : B) => P)\n                    (@Function.instFunLikeEmbedding.{1, 1} B P) b a))\n                (x a)))\n          inst)\n        (w z)\n        (@OfNat.ofNat.{0} R (nat_lit 0)\n          (@Zero.toOfNat0.{0} R\n            (@MulZeroClass.toZero.{0} R (@instMulZeroClassOfSemiring.{0} R (@CommSemiring.toSemiring.{0} R inst_3))))))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.Clients.boundary_reorder_raw","family":"open","import":"Counting.Bridge.OpenNetwork.Clients","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Clients","name":"Counting.Bridge.OpenNetwork.Clients.boundary_reorder_raw","name_semantics":"actual named kernel declaration","readable_type":"And\n  (Eq\n    ((Counting.Bridge.OpenNetwork.toOpenInstance Counting.Bridge.OpenNetwork.Clients.reordered).partition\n      Counting.Bridge.OpenNetwork.Clients.pairWord)\n    10)\n  (Eq\n    (((Counting.Bridge.OpenNetwork.toOpenInstance Counting.Bridge.OpenNetwork.Clients.pair).renameBoundary\n          (EquivLike.toFunLike.coe (Equiv.symm (Equiv.swap 0 1)))).partition\n      Counting.Bridge.OpenNetwork.Clients.pairWord)\n    10)","role":"client","source_line":168,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Clients.lean","source_sha256":"699ecac25c9b3d3b0c17038b425a8759223ab0841e57027de18a210cb58506b3","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Clients.lean#L168","type":"And\n  (@Eq.{1} Nat\n    (@Counting.Model.OpenInstance.partition Bool Nat\n      (Sum.{0, 0}\n        (Fin\n          (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.reordered)))\n        (Fin\n          (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.reordered))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n      (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        Counting.Bridge.OpenNetwork.Clients.reordered)\n      (@Counting.Bridge.OpenNetwork.language Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        Nat.instCommSemiring Counting.Bridge.OpenNetwork.Clients.reordered)\n      Nat.instCommSemiring Bool.fintype\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (Holant.OpenPorts\n          (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.reordered))\n          (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.reordered))\n          (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.reordered)))\n        (@instFintypeSum.{0, 0}\n          (@Sigma.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered)))\n            fun\n              (v :\n                Fin\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      Counting.Bridge.OpenNetwork.Clients.reordered))) =>\n            Fin\n              (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered)\n                v))\n          (Fin\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.reordered)))\n          (@Sigma.instFintype.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered)))\n            (fun\n                (v :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        Counting.Bridge.OpenNetwork.Clients.reordered))) =>\n              Fin\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.reordered)\n                  v))\n            (fun\n                (i :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        Counting.Bridge.OpenNetwork.Clients.reordered))) =>\n              Fin.fintype\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.reordered)\n                  i))\n            (Fin.fintype\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered))))\n          (Fin.fintype\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.reordered))))\n        (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            Counting.Bridge.OpenNetwork.Clients.reordered)))\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (Holant.OpenPorts\n          (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.reordered))\n          (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.reordered))\n          (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.reordered)))\n        (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            Counting.Bridge.OpenNetwork.Clients.reordered)))\n      (@Counting.Bridge.OpenNetwork.toOpenInstance Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        Nat.instCommSemiring Counting.Bridge.OpenNetwork.Clients.reordered)\n      Counting.Bridge.OpenNetwork.Clients.pairWord)\n    (@OfNat.ofNat.{0} Nat (nat_lit 10) (instOfNatNat (nat_lit 10))))\n  (@Eq.{1} Nat\n    (@Counting.Model.OpenInstance.partition Bool Nat\n      (Sum.{0, 0}\n        (Fin\n          (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.pair)))\n        (Fin\n          (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.pair))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n      (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        Counting.Bridge.OpenNetwork.Clients.pair)\n      (@Counting.Bridge.OpenNetwork.language Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        Nat.instCommSemiring Counting.Bridge.OpenNetwork.Clients.pair)\n      Nat.instCommSemiring Bool.fintype\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (Holant.OpenPorts\n          (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.pair))\n          (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.pair))\n          (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.pair)))\n        (@instFintypeSum.{0, 0}\n          (@Sigma.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.pair)))\n            fun\n              (v :\n                Fin\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      Counting.Bridge.OpenNetwork.Clients.pair))) =>\n            Fin\n              (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.pair)\n                v))\n          (Fin\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.pair)))\n          (@Sigma.instFintype.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.pair)))\n            (fun\n                (v :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        Counting.Bridge.OpenNetwork.Clients.pair))) =>\n              Fin\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.pair)\n                  v))\n            (fun\n                (i :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        Counting.Bridge.OpenNetwork.Clients.pair))) =>\n              Fin.fintype\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.pair)\n                  i))\n            (Fin.fintype\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.pair))))\n          (Fin.fintype\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.pair))))\n        (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            Counting.Bridge.OpenNetwork.Clients.pair)))\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (Holant.OpenPorts\n          (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.pair))\n          (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.pair))\n          (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.pair)))\n        (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            Counting.Bridge.OpenNetwork.Clients.pair)))\n      (@Counting.Model.OpenInstance.renameBoundary Bool Nat\n        (Sum.{0, 0}\n          (Fin\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.pair)))\n          (Fin\n            (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.pair))))\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          Counting.Bridge.OpenNetwork.Clients.pair)\n        (@Counting.Bridge.OpenNetwork.language Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          Nat.instCommSemiring Counting.Bridge.OpenNetwork.Clients.pair)\n        (@Counting.Bridge.OpenNetwork.toOpenInstance Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          Nat.instCommSemiring Counting.Bridge.OpenNetwork.Clients.pair)\n        (@DFunLike.coe.{1, 1, 1}\n          (Equiv.{1, 1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n          (fun (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))) =>\n            Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n          (@EquivLike.toFunLike.{1, 1, 1}\n            (Equiv.{1, 1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (@Equiv.instEquivLike.{1, 1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))))\n          (@Equiv.symm.{1, 1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (@Equiv.swap.{1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (instDecidableEqFin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))) (nat_lit 0)\n                (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Nat.instNeZeroSucc (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) (nat_lit 0)))\n              (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))) (nat_lit 1)\n                (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Nat.instNeZeroSucc (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) (nat_lit 1)))))))\n      Counting.Bridge.OpenNetwork.Clients.pairWord)\n    (@OfNat.ofNat.{0} Nat (nat_lit 10) (instOfNatNat (nat_lit 10))))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.Clients.boundary_reorder_tensor","family":"open","import":"Counting.Bridge.OpenNetwork.Clients","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Clients","name":"Counting.Bridge.OpenNetwork.Clients.boundary_reorder_tensor","name_semantics":"actual named kernel declaration","readable_type":"And\n  (Eq\n    ((Counting.Bridge.OpenNetwork.toTensorInstance Counting.Bridge.OpenNetwork.Clients.reordered).partition\n      Counting.Bridge.OpenNetwork.Clients.pairWord)\n    15)\n  (Eq\n    (((Counting.Bridge.OpenNetwork.toTensorInstance Counting.Bridge.OpenNetwork.Clients.pair).renameBoundary\n          (EquivLike.toFunLike.coe (Equiv.symm (Equiv.swap 0 1)))).partition\n      Counting.Bridge.OpenNetwork.Clients.pairWord)\n    15)","role":"client","source_line":177,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Clients.lean","source_sha256":"699ecac25c9b3d3b0c17038b425a8759223ab0841e57027de18a210cb58506b3","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Clients.lean#L177","type":"And\n  (@Eq.{1} Nat\n    (@Counting.Model.OpenInstance.partition Bool Nat\n      (Sum.{0, 0}\n        (Sum.{0, 0}\n          (Fin\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.reordered)))\n          (Fin\n            (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.reordered))))\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n      (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          Counting.Bridge.OpenNetwork.Clients.reordered))\n      (@Counting.Bridge.OpenNetwork.tensorLanguage Nat Nat.instCommSemiring\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) Counting.Bridge.OpenNetwork.Clients.reordered)\n      Nat.instCommSemiring Bool.fintype\n      (@instFintypeSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          Counting.Bridge.OpenNetwork.Clients.reordered)\n        (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n          (Holant.OpenPorts\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.reordered))\n            (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.reordered))\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.reordered)))\n          (@instFintypeSum.{0, 0}\n            (@Sigma.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.reordered)))\n              fun\n                (v :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        Counting.Bridge.OpenNetwork.Clients.reordered))) =>\n              Fin\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.reordered)\n                  v))\n            (Fin\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered)))\n            (@Sigma.instFintype.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.reordered)))\n              (fun\n                  (v :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                          Counting.Bridge.OpenNetwork.Clients.reordered))) =>\n                Fin\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      Counting.Bridge.OpenNetwork.Clients.reordered)\n                    v))\n              (fun\n                  (i :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                          Counting.Bridge.OpenNetwork.Clients.reordered))) =>\n                Fin.fintype\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      Counting.Bridge.OpenNetwork.Clients.reordered)\n                    i))\n              (Fin.fintype\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.reordered))))\n            (Fin.fintype\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered))))\n          (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.reordered))))\n      (fun\n          (a b :\n            Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.reordered)) =>\n        @instDecidableEqSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            Counting.Bridge.OpenNetwork.Clients.reordered)\n          (instDecidableEqFin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Holant.OpenPorts\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered))\n              (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered))\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered)))\n            (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.reordered)))\n          a b)\n      (@Counting.Bridge.OpenNetwork.toTensorInstance Nat Nat.instCommSemiring\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) Counting.Bridge.OpenNetwork.Clients.reordered)\n      Counting.Bridge.OpenNetwork.Clients.pairWord)\n    (@OfNat.ofNat.{0} Nat (nat_lit 15) (instOfNatNat (nat_lit 15))))\n  (@Eq.{1} Nat\n    (@Counting.Model.OpenInstance.partition Bool Nat\n      (Sum.{0, 0}\n        (Sum.{0, 0}\n          (Fin\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.pair)))\n          (Fin\n            (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.pair))))\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n      (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          Counting.Bridge.OpenNetwork.Clients.pair))\n      (@Counting.Bridge.OpenNetwork.tensorLanguage Nat Nat.instCommSemiring\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) Counting.Bridge.OpenNetwork.Clients.pair)\n      Nat.instCommSemiring Bool.fintype\n      (@instFintypeSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          Counting.Bridge.OpenNetwork.Clients.pair)\n        (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n          (Holant.OpenPorts\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.pair))\n            (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.pair))\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.pair)))\n          (@instFintypeSum.{0, 0}\n            (@Sigma.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.pair)))\n              fun\n                (v :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        Counting.Bridge.OpenNetwork.Clients.pair))) =>\n              Fin\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.pair)\n                  v))\n            (Fin\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.pair)))\n            (@Sigma.instFintype.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.pair)))\n              (fun\n                  (v :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                          Counting.Bridge.OpenNetwork.Clients.pair))) =>\n                Fin\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      Counting.Bridge.OpenNetwork.Clients.pair)\n                    v))\n              (fun\n                  (i :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                          Counting.Bridge.OpenNetwork.Clients.pair))) =>\n                Fin.fintype\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      Counting.Bridge.OpenNetwork.Clients.pair)\n                    i))\n              (Fin.fintype\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.pair))))\n            (Fin.fintype\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.pair))))\n          (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.pair))))\n      (fun\n          (a b :\n            Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.pair)) =>\n        @instDecidableEqSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            Counting.Bridge.OpenNetwork.Clients.pair)\n          (instDecidableEqFin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Holant.OpenPorts\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.pair))\n              (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.pair))\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.pair)))\n            (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.pair)))\n          a b)\n      (@Counting.Model.OpenInstance.renameBoundary Bool Nat\n        (Sum.{0, 0}\n          (Sum.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.pair)))\n            (Fin\n              (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.pair))))\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            Counting.Bridge.OpenNetwork.Clients.pair))\n        (@Counting.Bridge.OpenNetwork.tensorLanguage Nat Nat.instCommSemiring\n          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) Counting.Bridge.OpenNetwork.Clients.pair)\n        (@Counting.Bridge.OpenNetwork.toTensorInstance Nat Nat.instCommSemiring\n          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) Counting.Bridge.OpenNetwork.Clients.pair)\n        (@DFunLike.coe.{1, 1, 1}\n          (Equiv.{1, 1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n          (fun (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))) =>\n            Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n          (@EquivLike.toFunLike.{1, 1, 1}\n            (Equiv.{1, 1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (@Equiv.instEquivLike.{1, 1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))))\n          (@Equiv.symm.{1, 1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (@Equiv.swap.{1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (instDecidableEqFin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))) (nat_lit 0)\n                (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Nat.instNeZeroSucc (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) (nat_lit 0)))\n              (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))) (nat_lit 1)\n                (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Nat.instNeZeroSucc (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) (nat_lit 1)))))))\n      Counting.Bridge.OpenNetwork.Clients.pairWord)\n    (@OfNat.ofNat.{0} Nat (nat_lit 15) (instOfNatNat (nat_lit 15))))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.Clients.first_composition_raw","family":"open","import":"Counting.Bridge.OpenNetwork.Clients","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Clients","name":"Counting.Bridge.OpenNetwork.Clients.first_composition_raw","name_semantics":"actual named kernel declaration","readable_type":"And\n  (Eq\n    ((Counting.Bridge.OpenNetwork.toOpenInstance Counting.Bridge.OpenNetwork.Clients.pair).partition\n      Counting.Bridge.OpenNetwork.Clients.pairWord)\n    21)\n  (Eq\n    ((Counting.Bridge.OpenNetwork.disjointInstance Counting.Bridge.OpenNetwork.Clients.stub\n          Counting.Bridge.OpenNetwork.Clients.ordinary).partition\n      Counting.Bridge.OpenNetwork.Clients.pairWord)\n    21)","role":"client","source_line":149,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Clients.lean","source_sha256":"699ecac25c9b3d3b0c17038b425a8759223ab0841e57027de18a210cb58506b3","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Clients.lean#L149","type":"And\n  (@Eq.{1} Nat\n    (@Counting.Model.OpenInstance.partition Bool Nat\n      (Sum.{0, 0}\n        (Fin\n          (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.pair)))\n        (Fin\n          (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.pair))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n      (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        Counting.Bridge.OpenNetwork.Clients.pair)\n      (@Counting.Bridge.OpenNetwork.language Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        Nat.instCommSemiring Counting.Bridge.OpenNetwork.Clients.pair)\n      Nat.instCommSemiring Bool.fintype\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (Holant.OpenPorts\n          (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.pair))\n          (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.pair))\n          (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.pair)))\n        (@instFintypeSum.{0, 0}\n          (@Sigma.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.pair)))\n            fun\n              (v :\n                Fin\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      Counting.Bridge.OpenNetwork.Clients.pair))) =>\n            Fin\n              (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.pair)\n                v))\n          (Fin\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.pair)))\n          (@Sigma.instFintype.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.pair)))\n            (fun\n                (v :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        Counting.Bridge.OpenNetwork.Clients.pair))) =>\n              Fin\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.pair)\n                  v))\n            (fun\n                (i :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        Counting.Bridge.OpenNetwork.Clients.pair))) =>\n              Fin.fintype\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.pair)\n                  i))\n            (Fin.fintype\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.pair))))\n          (Fin.fintype\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.pair))))\n        (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            Counting.Bridge.OpenNetwork.Clients.pair)))\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (Holant.OpenPorts\n          (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.pair))\n          (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.pair))\n          (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.pair)))\n        (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            Counting.Bridge.OpenNetwork.Clients.pair)))\n      (@Counting.Bridge.OpenNetwork.toOpenInstance Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        Nat.instCommSemiring Counting.Bridge.OpenNetwork.Clients.pair)\n      Counting.Bridge.OpenNetwork.Clients.pairWord)\n    (@OfNat.ofNat.{0} Nat (nat_lit 21) (instOfNatNat (nat_lit 21))))\n  (@Eq.{1} Nat\n    (@Counting.Model.OpenInstance.partition Bool Nat\n      (Sum.{0, 0}\n        (Sum.{0, 0}\n          (Fin\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub)))\n          (Fin\n            (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub))))\n        (Sum.{0, 0}\n          (Fin\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.ordinary)))\n          (Fin\n            (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.ordinary)))))\n      (Fin\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n      (Sum.{0, 0}\n        (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Bridge.OpenNetwork.Clients.stub)\n        (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Bridge.OpenNetwork.Clients.ordinary))\n      (@Counting.Bridge.OpenNetwork.sumLanguage Bool Nat\n        (Sum.{0, 0}\n          (Fin\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub)))\n          (Fin\n            (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub))))\n        (Sum.{0, 0}\n          (Fin\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.ordinary)))\n          (Fin\n            (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.ordinary))))\n        (@Counting.Bridge.OpenNetwork.language Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Nat.instCommSemiring Counting.Bridge.OpenNetwork.Clients.stub)\n        (@Counting.Bridge.OpenNetwork.language Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Nat.instCommSemiring Counting.Bridge.OpenNetwork.Clients.ordinary))\n      Nat.instCommSemiring Bool.fintype\n      (@instFintypeSum.{0, 0}\n        (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Bridge.OpenNetwork.Clients.stub)\n        (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Bridge.OpenNetwork.Clients.ordinary)\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (Holant.OpenPorts\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub))\n            (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub))\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub)))\n          (@instFintypeSum.{0, 0}\n            (@Sigma.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.stub)))\n              fun\n                (v :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Bridge.OpenNetwork.Clients.stub))) =>\n              Fin\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.stub)\n                  v))\n            (Fin\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub)))\n            (@Sigma.instFintype.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.stub)))\n              (fun\n                  (v :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Bridge.OpenNetwork.Clients.stub))) =>\n                Fin\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.stub)\n                    v))\n              (fun\n                  (i :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Bridge.OpenNetwork.Clients.stub))) =>\n                Fin.fintype\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.stub)\n                    i))\n              (Fin.fintype\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.stub))))\n            (Fin.fintype\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub))))\n          (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Bridge.OpenNetwork.Clients.stub)))\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (Holant.OpenPorts\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.ordinary))\n            (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.ordinary))\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.ordinary)))\n          (@instFintypeSum.{0, 0}\n            (@Sigma.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.ordinary)))\n              fun\n                (v :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Bridge.OpenNetwork.Clients.ordinary))) =>\n              Fin\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.ordinary)\n                  v))\n            (Fin\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.ordinary)))\n            (@Sigma.instFintype.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.ordinary)))\n              (fun\n                  (v :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Bridge.OpenNetwork.Clients.ordinary))) =>\n                Fin\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.ordinary)\n                    v))\n              (fun\n                  (i :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Bridge.OpenNetwork.Clients.ordinary))) =>\n                Fin.fintype\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.ordinary)\n                    i))\n              (Fin.fintype\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.ordinary))))\n            (Fin.fintype\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.ordinary))))\n          (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Bridge.OpenNetwork.Clients.ordinary))))\n      (fun\n          (a b :\n            Sum.{0, 0}\n              (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub)\n              (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.ordinary)) =>\n        @instDecidableEqSum.{0, 0}\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub)\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.ordinary)\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            (Holant.OpenPorts\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub))\n              (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub))\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub)))\n            (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub)))\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            (Holant.OpenPorts\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.ordinary))\n              (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.ordinary))\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.ordinary)))\n            (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.ordinary)))\n          a b)\n      (@Counting.Bridge.OpenNetwork.disjointInstance Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Nat.instCommSemiring\n        Counting.Bridge.OpenNetwork.Clients.stub Counting.Bridge.OpenNetwork.Clients.ordinary)\n      Counting.Bridge.OpenNetwork.Clients.pairWord)\n    (@OfNat.ofNat.{0} Nat (nat_lit 21) (instOfNatNat (nat_lit 21))))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.Clients.first_composition_tensor","family":"open","import":"Counting.Bridge.OpenNetwork.Clients","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Clients","name":"Counting.Bridge.OpenNetwork.Clients.first_composition_tensor","name_semantics":"actual named kernel declaration","readable_type":"And\n  (Eq\n    ((Counting.Bridge.OpenNetwork.toTensorInstance Counting.Bridge.OpenNetwork.Clients.pair).partition\n      Counting.Bridge.OpenNetwork.Clients.pairWord)\n    14)\n  (Eq\n    ((Counting.Bridge.OpenNetwork.disjointTensorInstance Counting.Bridge.OpenNetwork.Clients.stub\n          Counting.Bridge.OpenNetwork.Clients.ordinary).partition\n      Counting.Bridge.OpenNetwork.Clients.pairWord)\n    14)","role":"client","source_line":158,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Clients.lean","source_sha256":"699ecac25c9b3d3b0c17038b425a8759223ab0841e57027de18a210cb58506b3","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Clients.lean#L158","type":"And\n  (@Eq.{1} Nat\n    (@Counting.Model.OpenInstance.partition Bool Nat\n      (Sum.{0, 0}\n        (Sum.{0, 0}\n          (Fin\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.pair)))\n          (Fin\n            (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.pair))))\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n      (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          Counting.Bridge.OpenNetwork.Clients.pair))\n      (@Counting.Bridge.OpenNetwork.tensorLanguage Nat Nat.instCommSemiring\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) Counting.Bridge.OpenNetwork.Clients.pair)\n      Nat.instCommSemiring Bool.fintype\n      (@instFintypeSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          Counting.Bridge.OpenNetwork.Clients.pair)\n        (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n          (Holant.OpenPorts\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.pair))\n            (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.pair))\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.pair)))\n          (@instFintypeSum.{0, 0}\n            (@Sigma.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.pair)))\n              fun\n                (v :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        Counting.Bridge.OpenNetwork.Clients.pair))) =>\n              Fin\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.pair)\n                  v))\n            (Fin\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.pair)))\n            (@Sigma.instFintype.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.pair)))\n              (fun\n                  (v :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                          Counting.Bridge.OpenNetwork.Clients.pair))) =>\n                Fin\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      Counting.Bridge.OpenNetwork.Clients.pair)\n                    v))\n              (fun\n                  (i :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                          Counting.Bridge.OpenNetwork.Clients.pair))) =>\n                Fin.fintype\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      Counting.Bridge.OpenNetwork.Clients.pair)\n                    i))\n              (Fin.fintype\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.pair))))\n            (Fin.fintype\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.pair))))\n          (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.pair))))\n      (fun\n          (a b :\n            Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.pair)) =>\n        @instDecidableEqSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            Counting.Bridge.OpenNetwork.Clients.pair)\n          (instDecidableEqFin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Holant.OpenPorts\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.pair))\n              (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.pair))\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.pair)))\n            (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.pair)))\n          a b)\n      (@Counting.Bridge.OpenNetwork.toTensorInstance Nat Nat.instCommSemiring\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) Counting.Bridge.OpenNetwork.Clients.pair)\n      Counting.Bridge.OpenNetwork.Clients.pairWord)\n    (@OfNat.ofNat.{0} Nat (nat_lit 14) (instOfNatNat (nat_lit 14))))\n  (@Eq.{1} Nat\n    (@Counting.Model.OpenInstance.partition Bool Nat\n      (Sum.{0, 0}\n        (Sum.{0, 0}\n          (Sum.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub)))\n            (Fin\n              (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub))))\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n        (Sum.{0, 0}\n          (Sum.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.ordinary)))\n            (Fin\n              (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.ordinary))))\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))))\n      (Fin\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n      (Sum.{0, 0}\n        (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub))\n        (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.ordinary)))\n      (@Counting.Bridge.OpenNetwork.sumLanguage Bool Nat\n        (Sum.{0, 0}\n          (Sum.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub)))\n            (Fin\n              (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub))))\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n        (Sum.{0, 0}\n          (Sum.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.ordinary)))\n            (Fin\n              (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.ordinary))))\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n        (@Counting.Bridge.OpenNetwork.tensorLanguage Nat Nat.instCommSemiring\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Bridge.OpenNetwork.Clients.stub)\n        (@Counting.Bridge.OpenNetwork.tensorLanguage Nat Nat.instCommSemiring\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Bridge.OpenNetwork.Clients.ordinary))\n      Nat.instCommSemiring Bool.fintype\n      (@instFintypeSum.{0, 0}\n        (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub))\n        (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.ordinary))\n        (@instFintypeSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub)\n          (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            (Holant.OpenPorts\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub))\n              (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub))\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub)))\n            (@instFintypeSum.{0, 0}\n              (@Sigma.{0, 0}\n                (Fin\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.stub)))\n                fun\n                  (v :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Bridge.OpenNetwork.Clients.stub))) =>\n                Fin\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.stub)\n                    v))\n              (Fin\n                (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.stub)))\n              (@Sigma.instFintype.{0, 0}\n                (Fin\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.stub)))\n                (fun\n                    (v :\n                      Fin\n                        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@Holant.OpenNetwork.shape.{0} Nat\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            Counting.Bridge.OpenNetwork.Clients.stub))) =>\n                  Fin\n                    (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Bridge.OpenNetwork.Clients.stub)\n                      v))\n                (fun\n                    (i :\n                      Fin\n                        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@Holant.OpenNetwork.shape.{0} Nat\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            Counting.Bridge.OpenNetwork.Clients.stub))) =>\n                  Fin.fintype\n                    (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Bridge.OpenNetwork.Clients.stub)\n                      i))\n                (Fin.fintype\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.stub))))\n              (Fin.fintype\n                (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.stub))))\n            (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub))))\n        (@instFintypeSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.ordinary)\n          (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            (Holant.OpenPorts\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.ordinary))\n              (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.ordinary))\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.ordinary)))\n            (@instFintypeSum.{0, 0}\n              (@Sigma.{0, 0}\n                (Fin\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.ordinary)))\n                fun\n                  (v :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Bridge.OpenNetwork.Clients.ordinary))) =>\n                Fin\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.ordinary)\n                    v))\n              (Fin\n                (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.ordinary)))\n              (@Sigma.instFintype.{0, 0}\n                (Fin\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.ordinary)))\n                (fun\n                    (v :\n                      Fin\n                        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@Holant.OpenNetwork.shape.{0} Nat\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            Counting.Bridge.OpenNetwork.Clients.ordinary))) =>\n                  Fin\n                    (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Bridge.OpenNetwork.Clients.ordinary)\n                      v))\n                (fun\n                    (i :\n                      Fin\n                        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@Holant.OpenNetwork.shape.{0} Nat\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            Counting.Bridge.OpenNetwork.Clients.ordinary))) =>\n                  Fin.fintype\n                    (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Bridge.OpenNetwork.Clients.ordinary)\n                      i))\n                (Fin.fintype\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.ordinary))))\n              (Fin.fintype\n                (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.ordinary))))\n            (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.ordinary)))))\n      (fun\n          (a b :\n            Sum.{0, 0}\n              (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub))\n              (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.ordinary))) =>\n        @instDecidableEqSum.{0, 0}\n          (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Bridge.OpenNetwork.Clients.stub))\n          (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Bridge.OpenNetwork.Clients.ordinary))\n          (fun\n              (a b :\n                Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                  (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.stub)) =>\n            @instDecidableEqSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub)\n              (instDecidableEqFin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                (Holant.OpenPorts\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.stub))\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.stub))\n                  (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.stub)))\n                (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.stub)))\n              a b)\n          (fun\n              (a b :\n                Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                  (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.ordinary)) =>\n            @instDecidableEqSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.ordinary)\n              (instDecidableEqFin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                (Holant.OpenPorts\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.ordinary))\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.ordinary))\n                  (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.ordinary)))\n                (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.ordinary)))\n              a b)\n          a b)\n      (@Counting.Bridge.OpenNetwork.disjointTensorInstance Nat\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Nat.instCommSemiring\n        Counting.Bridge.OpenNetwork.Clients.stub Counting.Bridge.OpenNetwork.Clients.ordinary)\n      Counting.Bridge.OpenNetwork.Clients.pairWord)\n    (@OfNat.ofNat.{0} Nat (nat_lit 14) (instOfNatNat (nat_lit 14))))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.Clients.second_composition_raw","family":"open","import":"Counting.Bridge.OpenNetwork.Clients","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Clients","name":"Counting.Bridge.OpenNetwork.Clients.second_composition_raw","name_semantics":"actual named kernel declaration","readable_type":"And\n  (Eq\n    ((Counting.Bridge.OpenNetwork.toOpenInstance Counting.Bridge.OpenNetwork.Clients.twice).partition\n      Counting.Bridge.OpenNetwork.Clients.twiceWord)\n    20)\n  (Eq\n    ((Counting.Bridge.OpenNetwork.disjointInstance Counting.Bridge.OpenNetwork.Clients.reordered\n          Counting.Bridge.OpenNetwork.Clients.stub).partition\n      Counting.Bridge.OpenNetwork.Clients.twiceWord)\n    20)","role":"client","source_line":186,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Clients.lean","source_sha256":"699ecac25c9b3d3b0c17038b425a8759223ab0841e57027de18a210cb58506b3","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Clients.lean#L186","type":"And\n  (@Eq.{1} Nat\n    (@Counting.Model.OpenInstance.partition Bool Nat\n      (Sum.{0, 0}\n        (Fin\n          (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n              Counting.Bridge.OpenNetwork.Clients.twice)))\n        (Fin\n          (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n              Counting.Bridge.OpenNetwork.Clients.twice))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n      (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n        Counting.Bridge.OpenNetwork.Clients.twice)\n      (@Counting.Bridge.OpenNetwork.language Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n        Nat.instCommSemiring Counting.Bridge.OpenNetwork.Clients.twice)\n      Nat.instCommSemiring Bool.fintype\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n        (Holant.OpenPorts\n          (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n              Counting.Bridge.OpenNetwork.Clients.twice))\n          (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n              Counting.Bridge.OpenNetwork.Clients.twice))\n          (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n              Counting.Bridge.OpenNetwork.Clients.twice)))\n        (@instFintypeSum.{0, 0}\n          (@Sigma.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                  Counting.Bridge.OpenNetwork.Clients.twice)))\n            fun\n              (v :\n                Fin\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                      Counting.Bridge.OpenNetwork.Clients.twice))) =>\n            Fin\n              (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                  Counting.Bridge.OpenNetwork.Clients.twice)\n                v))\n          (Fin\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                Counting.Bridge.OpenNetwork.Clients.twice)))\n          (@Sigma.instFintype.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                  Counting.Bridge.OpenNetwork.Clients.twice)))\n            (fun\n                (v :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                        Counting.Bridge.OpenNetwork.Clients.twice))) =>\n              Fin\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                    Counting.Bridge.OpenNetwork.Clients.twice)\n                  v))\n            (fun\n                (i :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                        Counting.Bridge.OpenNetwork.Clients.twice))) =>\n              Fin.fintype\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                    Counting.Bridge.OpenNetwork.Clients.twice)\n                  i))\n            (Fin.fintype\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                  Counting.Bridge.OpenNetwork.Clients.twice))))\n          (Fin.fintype\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                Counting.Bridge.OpenNetwork.Clients.twice))))\n        (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n            Counting.Bridge.OpenNetwork.Clients.twice)))\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n        (Holant.OpenPorts\n          (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n              Counting.Bridge.OpenNetwork.Clients.twice))\n          (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n              Counting.Bridge.OpenNetwork.Clients.twice))\n          (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n              Counting.Bridge.OpenNetwork.Clients.twice)))\n        (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n            Counting.Bridge.OpenNetwork.Clients.twice)))\n      (@Counting.Bridge.OpenNetwork.toOpenInstance Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n        Nat.instCommSemiring Counting.Bridge.OpenNetwork.Clients.twice)\n      Counting.Bridge.OpenNetwork.Clients.twiceWord)\n    (@OfNat.ofNat.{0} Nat (nat_lit 20) (instOfNatNat (nat_lit 20))))\n  (@Eq.{1} Nat\n    (@Counting.Model.OpenInstance.partition Bool Nat\n      (Sum.{0, 0}\n        (Sum.{0, 0}\n          (Fin\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.reordered)))\n          (Fin\n            (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.reordered))))\n        (Sum.{0, 0}\n          (Fin\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub)))\n          (Fin\n            (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub)))))\n      (Fin\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n      (Sum.{0, 0}\n        (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          Counting.Bridge.OpenNetwork.Clients.reordered)\n        (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Bridge.OpenNetwork.Clients.stub))\n      (@Counting.Bridge.OpenNetwork.sumLanguage Bool Nat\n        (Sum.{0, 0}\n          (Fin\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.reordered)))\n          (Fin\n            (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.reordered))))\n        (Sum.{0, 0}\n          (Fin\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub)))\n          (Fin\n            (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub))))\n        (@Counting.Bridge.OpenNetwork.language Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          Nat.instCommSemiring Counting.Bridge.OpenNetwork.Clients.reordered)\n        (@Counting.Bridge.OpenNetwork.language Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Nat.instCommSemiring Counting.Bridge.OpenNetwork.Clients.stub))\n      Nat.instCommSemiring Bool.fintype\n      (@instFintypeSum.{0, 0}\n        (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          Counting.Bridge.OpenNetwork.Clients.reordered)\n        (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          Counting.Bridge.OpenNetwork.Clients.stub)\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n          (Holant.OpenPorts\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.reordered))\n            (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.reordered))\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.reordered)))\n          (@instFintypeSum.{0, 0}\n            (@Sigma.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.reordered)))\n              fun\n                (v :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        Counting.Bridge.OpenNetwork.Clients.reordered))) =>\n              Fin\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.reordered)\n                  v))\n            (Fin\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered)))\n            (@Sigma.instFintype.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.reordered)))\n              (fun\n                  (v :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                          Counting.Bridge.OpenNetwork.Clients.reordered))) =>\n                Fin\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      Counting.Bridge.OpenNetwork.Clients.reordered)\n                    v))\n              (fun\n                  (i :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                          Counting.Bridge.OpenNetwork.Clients.reordered))) =>\n                Fin.fintype\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      Counting.Bridge.OpenNetwork.Clients.reordered)\n                    i))\n              (Fin.fintype\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.reordered))))\n            (Fin.fintype\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered))))\n          (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.reordered)))\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (Holant.OpenPorts\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub))\n            (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub))\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub)))\n          (@instFintypeSum.{0, 0}\n            (@Sigma.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.stub)))\n              fun\n                (v :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Bridge.OpenNetwork.Clients.stub))) =>\n              Fin\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.stub)\n                  v))\n            (Fin\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub)))\n            (@Sigma.instFintype.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.stub)))\n              (fun\n                  (v :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Bridge.OpenNetwork.Clients.stub))) =>\n                Fin\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.stub)\n                    v))\n              (fun\n                  (i :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Bridge.OpenNetwork.Clients.stub))) =>\n                Fin.fintype\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.stub)\n                    i))\n              (Fin.fintype\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.stub))))\n            (Fin.fintype\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub))))\n          (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Bridge.OpenNetwork.Clients.stub))))\n      (fun\n          (a b :\n            Sum.{0, 0}\n              (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.reordered)\n              (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub)) =>\n        @instDecidableEqSum.{0, 0}\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            Counting.Bridge.OpenNetwork.Clients.reordered)\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub)\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Holant.OpenPorts\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered))\n              (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered))\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered)))\n            (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.reordered)))\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            (Holant.OpenPorts\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub))\n              (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub))\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub)))\n            (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub)))\n          a b)\n      (@Counting.Bridge.OpenNetwork.disjointInstance Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Nat.instCommSemiring\n        Counting.Bridge.OpenNetwork.Clients.reordered Counting.Bridge.OpenNetwork.Clients.stub)\n      Counting.Bridge.OpenNetwork.Clients.twiceWord)\n    (@OfNat.ofNat.{0} Nat (nat_lit 20) (instOfNatNat (nat_lit 20))))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.Clients.second_composition_tensor","family":"open","import":"Counting.Bridge.OpenNetwork.Clients","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Clients","name":"Counting.Bridge.OpenNetwork.Clients.second_composition_tensor","name_semantics":"actual named kernel declaration","readable_type":"And\n  (Eq\n    ((Counting.Bridge.OpenNetwork.toTensorInstance Counting.Bridge.OpenNetwork.Clients.twice).partition\n      Counting.Bridge.OpenNetwork.Clients.twiceWord)\n    45)\n  (Eq\n    ((Counting.Bridge.OpenNetwork.disjointTensorInstance Counting.Bridge.OpenNetwork.Clients.reordered\n          Counting.Bridge.OpenNetwork.Clients.stub).partition\n      Counting.Bridge.OpenNetwork.Clients.twiceWord)\n    45)","role":"client","source_line":195,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Clients.lean","source_sha256":"699ecac25c9b3d3b0c17038b425a8759223ab0841e57027de18a210cb58506b3","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Clients.lean#L195","type":"And\n  (@Eq.{1} Nat\n    (@Counting.Model.OpenInstance.partition Bool Nat\n      (Sum.{0, 0}\n        (Sum.{0, 0}\n          (Fin\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                Counting.Bridge.OpenNetwork.Clients.twice)))\n          (Fin\n            (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                Counting.Bridge.OpenNetwork.Clients.twice))))\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n      (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n        (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n          Counting.Bridge.OpenNetwork.Clients.twice))\n      (@Counting.Bridge.OpenNetwork.tensorLanguage Nat Nat.instCommSemiring\n        (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) Counting.Bridge.OpenNetwork.Clients.twice)\n      Nat.instCommSemiring Bool.fintype\n      (@instFintypeSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n        (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n          Counting.Bridge.OpenNetwork.Clients.twice)\n        (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n          (Holant.OpenPorts\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                Counting.Bridge.OpenNetwork.Clients.twice))\n            (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                Counting.Bridge.OpenNetwork.Clients.twice))\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                Counting.Bridge.OpenNetwork.Clients.twice)))\n          (@instFintypeSum.{0, 0}\n            (@Sigma.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                    Counting.Bridge.OpenNetwork.Clients.twice)))\n              fun\n                (v :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                        Counting.Bridge.OpenNetwork.Clients.twice))) =>\n              Fin\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                    Counting.Bridge.OpenNetwork.Clients.twice)\n                  v))\n            (Fin\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                  Counting.Bridge.OpenNetwork.Clients.twice)))\n            (@Sigma.instFintype.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                    Counting.Bridge.OpenNetwork.Clients.twice)))\n              (fun\n                  (v :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                          Counting.Bridge.OpenNetwork.Clients.twice))) =>\n                Fin\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                      Counting.Bridge.OpenNetwork.Clients.twice)\n                    v))\n              (fun\n                  (i :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                          Counting.Bridge.OpenNetwork.Clients.twice))) =>\n                Fin.fintype\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                      Counting.Bridge.OpenNetwork.Clients.twice)\n                    i))\n              (Fin.fintype\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                    Counting.Bridge.OpenNetwork.Clients.twice))))\n            (Fin.fintype\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                  Counting.Bridge.OpenNetwork.Clients.twice))))\n          (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n              Counting.Bridge.OpenNetwork.Clients.twice))))\n      (fun\n          (a b :\n            Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n              (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                Counting.Bridge.OpenNetwork.Clients.twice)) =>\n        @instDecidableEqSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n            Counting.Bridge.OpenNetwork.Clients.twice)\n          (instDecidableEqFin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (Holant.OpenPorts\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                  Counting.Bridge.OpenNetwork.Clients.twice))\n              (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                  Counting.Bridge.OpenNetwork.Clients.twice))\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                  Counting.Bridge.OpenNetwork.Clients.twice)))\n            (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                Counting.Bridge.OpenNetwork.Clients.twice)))\n          a b)\n      (@Counting.Bridge.OpenNetwork.toTensorInstance Nat Nat.instCommSemiring\n        (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) Counting.Bridge.OpenNetwork.Clients.twice)\n      Counting.Bridge.OpenNetwork.Clients.twiceWord)\n    (@OfNat.ofNat.{0} Nat (nat_lit 45) (instOfNatNat (nat_lit 45))))\n  (@Eq.{1} Nat\n    (@Counting.Model.OpenInstance.partition Bool Nat\n      (Sum.{0, 0}\n        (Sum.{0, 0}\n          (Sum.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered)))\n            (Fin\n              (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered))))\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n        (Sum.{0, 0}\n          (Sum.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub)))\n            (Fin\n              (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub))))\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))))\n      (Fin\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n      (Sum.{0, 0}\n        (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            Counting.Bridge.OpenNetwork.Clients.reordered))\n        (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub)))\n      (@Counting.Bridge.OpenNetwork.sumLanguage Bool Nat\n        (Sum.{0, 0}\n          (Sum.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered)))\n            (Fin\n              (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered))))\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n        (Sum.{0, 0}\n          (Sum.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub)))\n            (Fin\n              (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub))))\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n        (@Counting.Bridge.OpenNetwork.tensorLanguage Nat Nat.instCommSemiring\n          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) Counting.Bridge.OpenNetwork.Clients.reordered)\n        (@Counting.Bridge.OpenNetwork.tensorLanguage Nat Nat.instCommSemiring\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Bridge.OpenNetwork.Clients.stub))\n      Nat.instCommSemiring Bool.fintype\n      (@instFintypeSum.{0, 0}\n        (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            Counting.Bridge.OpenNetwork.Clients.reordered))\n        (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub))\n        (@instFintypeSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            Counting.Bridge.OpenNetwork.Clients.reordered)\n          (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Holant.OpenPorts\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered))\n              (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered))\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered)))\n            (@instFintypeSum.{0, 0}\n              (@Sigma.{0, 0}\n                (Fin\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      Counting.Bridge.OpenNetwork.Clients.reordered)))\n                fun\n                  (v :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                          Counting.Bridge.OpenNetwork.Clients.reordered))) =>\n                Fin\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      Counting.Bridge.OpenNetwork.Clients.reordered)\n                    v))\n              (Fin\n                (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.reordered)))\n              (@Sigma.instFintype.{0, 0}\n                (Fin\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      Counting.Bridge.OpenNetwork.Clients.reordered)))\n                (fun\n                    (v :\n                      Fin\n                        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                          (@Holant.OpenNetwork.shape.{0} Nat\n                            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                            Counting.Bridge.OpenNetwork.Clients.reordered))) =>\n                  Fin\n                    (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        Counting.Bridge.OpenNetwork.Clients.reordered)\n                      v))\n                (fun\n                    (i :\n                      Fin\n                        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                          (@Holant.OpenNetwork.shape.{0} Nat\n                            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                            Counting.Bridge.OpenNetwork.Clients.reordered))) =>\n                  Fin.fintype\n                    (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        Counting.Bridge.OpenNetwork.Clients.reordered)\n                      i))\n                (Fin.fintype\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      Counting.Bridge.OpenNetwork.Clients.reordered))))\n              (Fin.fintype\n                (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.reordered))))\n            (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.reordered))))\n        (@instFintypeSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub)\n          (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            (Holant.OpenPorts\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub))\n              (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub))\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub)))\n            (@instFintypeSum.{0, 0}\n              (@Sigma.{0, 0}\n                (Fin\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.stub)))\n                fun\n                  (v :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Bridge.OpenNetwork.Clients.stub))) =>\n                Fin\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.stub)\n                    v))\n              (Fin\n                (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.stub)))\n              (@Sigma.instFintype.{0, 0}\n                (Fin\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.stub)))\n                (fun\n                    (v :\n                      Fin\n                        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@Holant.OpenNetwork.shape.{0} Nat\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            Counting.Bridge.OpenNetwork.Clients.stub))) =>\n                  Fin\n                    (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Bridge.OpenNetwork.Clients.stub)\n                      v))\n                (fun\n                    (i :\n                      Fin\n                        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@Holant.OpenNetwork.shape.{0} Nat\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            Counting.Bridge.OpenNetwork.Clients.stub))) =>\n                  Fin.fintype\n                    (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Bridge.OpenNetwork.Clients.stub)\n                      i))\n                (Fin.fintype\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.stub))))\n              (Fin.fintype\n                (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.stub))))\n            (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub)))))\n      (fun\n          (a b :\n            Sum.{0, 0}\n              (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  Counting.Bridge.OpenNetwork.Clients.reordered))\n              (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub))) =>\n        @instDecidableEqSum.{0, 0}\n          (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              Counting.Bridge.OpenNetwork.Clients.reordered))\n          (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Bridge.OpenNetwork.Clients.stub))\n          (fun\n              (a b :\n                Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                  (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.reordered)) =>\n            @instDecidableEqSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                Counting.Bridge.OpenNetwork.Clients.reordered)\n              (instDecidableEqFin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                (Holant.OpenPorts\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      Counting.Bridge.OpenNetwork.Clients.reordered))\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      Counting.Bridge.OpenNetwork.Clients.reordered))\n                  (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      Counting.Bridge.OpenNetwork.Clients.reordered)))\n                (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                    Counting.Bridge.OpenNetwork.Clients.reordered)))\n              a b)\n          (fun\n              (a b :\n                Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                  (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.stub)) =>\n            @instDecidableEqSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub)\n              (instDecidableEqFin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                (Holant.OpenPorts\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.stub))\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.stub))\n                  (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.stub)))\n                (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Bridge.OpenNetwork.Clients.stub)))\n              a b)\n          a b)\n      (@Counting.Bridge.OpenNetwork.disjointTensorInstance Nat\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Nat.instCommSemiring\n        Counting.Bridge.OpenNetwork.Clients.reordered Counting.Bridge.OpenNetwork.Clients.stub)\n      Counting.Bridge.OpenNetwork.Clients.twiceWord)\n    (@OfNat.ofNat.{0} Nat (nat_lit 45) (instOfNatNat (nat_lit 45))))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.Clients.stub_boundaryKernel_nonidentity","family":"open","import":"Counting.Bridge.OpenNetwork.Clients","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Clients","name":"Counting.Bridge.OpenNetwork.Clients.stub_boundaryKernel_nonidentity","name_semantics":"actual named kernel declaration","readable_type":"And (Eq (Counting.Bridge.OpenNetwork.Clients.stub.boundaryKernel 0 Bool.false Bool.true) 1)\n  (Eq (Counting.Bridge.OpenNetwork.Clients.stub.boundaryKernel 0 Bool.false Bool.false) 0)","role":"client","source_line":66,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Clients.lean","source_sha256":"699ecac25c9b3d3b0c17038b425a8759223ab0841e57027de18a210cb58506b3","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Clients.lean#L66","type":"And\n  (@Eq.{1} Nat\n    (@Holant.OpenNetwork.boundaryKernel.{0} Nat Nat.instCommSemiring\n      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Bridge.OpenNetwork.Clients.stub\n      (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) (nat_lit 0)\n        (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Nat.instNeZeroSucc (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) (nat_lit 0)))\n      Bool.false Bool.true)\n    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n  (@Eq.{1} Nat\n    (@Holant.OpenNetwork.boundaryKernel.{0} Nat Nat.instCommSemiring\n      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Bridge.OpenNetwork.Clients.stub\n      (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) (nat_lit 0)\n        (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Nat.instNeZeroSucc (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) (nat_lit 0)))\n      Bool.false Bool.false)\n    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.Clients.stub_paired","family":"open","import":"Counting.Bridge.OpenNetwork.Clients","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Clients","name":"Counting.Bridge.OpenNetwork.Clients.stub_paired","name_semantics":"actual named kernel declaration","readable_type":"Eq\n  (Function.instFunLikeEmbedding.coe Counting.Bridge.OpenNetwork.Clients.stub.shape.ends\n    { fst := ⟨0, ⋯⟩, snd := Bool.true })\n  (Function.instFunLikeEmbedding.coe Counting.Bridge.OpenNetwork.Clients.stub.shape.boundary 0)","role":"client","source_line":36,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Clients.lean","source_sha256":"699ecac25c9b3d3b0c17038b425a8759223ab0841e57027de18a210cb58506b3","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Clients.lean#L36","type":"@Eq.{1}\n  (Holant.OpenPorts\n    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Bridge.OpenNetwork.Clients.stub))\n    (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Bridge.OpenNetwork.Clients.stub))\n    (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Bridge.OpenNetwork.Clients.stub)))\n  (@DFunLike.coe.{1, 1, 1}\n    (Function.Embedding.{1, 1}\n      (Prod.{0, 0}\n        (Fin\n          (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Bridge.OpenNetwork.Clients.stub)))\n        Bool)\n      (Holant.OpenPorts\n        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub))\n        (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub))\n        (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub))))\n    (Prod.{0, 0}\n      (Fin\n        (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub)))\n      Bool)\n    (fun\n        (x :\n          Prod.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Bridge.OpenNetwork.Clients.stub)))\n            Bool) =>\n      Holant.OpenPorts\n        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub))\n        (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub))\n        (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub)))\n    (@Function.instFunLikeEmbedding.{1, 1}\n      (Prod.{0, 0}\n        (Fin\n          (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              Counting.Bridge.OpenNetwork.Clients.stub)))\n        Bool)\n      (Holant.OpenPorts\n        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub))\n        (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub))\n        (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub))))\n    (@Holant.OpenNetworkShape.ends (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Bridge.OpenNetwork.Clients.stub))\n    (@Prod.mk.{0, 0}\n      (Fin\n        (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub)))\n      Bool\n      (@Fin.mk\n        (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub))\n        (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n        (@of_decide_eq_true\n          (@LT.lt.{0} Nat instLTNat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub)))\n          (Nat.decLt (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Bridge.OpenNetwork.Clients.stub)))\n          (@id.{0}\n            (@Eq.{1} Bool\n              (@Decidable.decide\n                (@LT.lt.{0} Nat instLTNat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.stub)))\n                (Nat.decLt (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Bridge.OpenNetwork.Clients.stub))))\n              Bool.true)\n            (@Eq.refl.{1} Bool Bool.true))))\n      Bool.true))\n  (@DFunLike.coe.{1, 1, 1}\n    (Function.Embedding.{1, 1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      (Holant.OpenPorts\n        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub))\n        (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub))\n        (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub))))\n    (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n    (fun (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) =>\n      Holant.OpenPorts\n        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub))\n        (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub))\n        (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub)))\n    (@Function.instFunLikeEmbedding.{1, 1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      (Holant.OpenPorts\n        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub))\n        (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub))\n        (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            Counting.Bridge.OpenNetwork.Clients.stub))))\n    (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.Bridge.OpenNetwork.Clients.stub))\n    (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) (nat_lit 0)\n      (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (@Nat.instNeZeroSucc (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) (nat_lit 0))))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.Clients.stub_raw_ne_tensor","family":"open","import":"Counting.Bridge.OpenNetwork.Clients","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Clients","name":"Counting.Bridge.OpenNetwork.Clients.stub_raw_ne_tensor","name_semantics":"actual named kernel declaration","readable_type":"Ne (Counting.Bridge.OpenNetwork.Clients.stub.raw fun x => Bool.false)\n  (Counting.Bridge.OpenNetwork.Clients.stub.tensor fun x => Bool.false)","role":"client","source_line":70,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Clients.lean","source_sha256":"699ecac25c9b3d3b0c17038b425a8759223ab0841e57027de18a210cb58506b3","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Clients.lean#L70","type":"@Ne.{1} Nat\n  (@Holant.OpenNetwork.raw.{0} Nat Nat.instCommSemiring (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n    Counting.Bridge.OpenNetwork.Clients.stub\n    fun (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) => Bool.false)\n  (@Holant.OpenNetwork.tensor.{0} Nat Nat.instCommSemiring (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n    Counting.Bridge.OpenNetwork.Clients.stub\n    fun (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) => Bool.false)"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.EdgeCases.empty_corrected","family":"open","import":"Counting.Bridge.OpenNetwork.All","kind":"theorem","module":"Counting.Bridge.OpenNetwork.EdgeCases","name":"Counting.Bridge.OpenNetwork.EdgeCases.empty_corrected","name_semantics":"actual named kernel declaration","readable_type":"∀ (x : Fin 0 → Bool),\n  Eq ((Counting.Bridge.OpenNetwork.toTensorInstance Counting.Bridge.OpenNetwork.EdgeCases.empty).partition x) 1","role":"client","source_line":60,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/EdgeCases.lean","source_sha256":"4a25a76de220d7d3e0b1ae87c312d17b4b008ab0594ebbd078cde4a9fa97b5cc","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/EdgeCases.lean#L60","type":"∀ (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) → Bool),\n  @Eq.{1} Nat\n    (@Counting.Model.OpenInstance.partition Bool Nat\n      (Sum.{0, 0}\n        (Sum.{0, 0}\n          (Fin\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                Counting.Bridge.OpenNetwork.EdgeCases.empty)))\n          (Fin\n            (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                Counting.Bridge.OpenNetwork.EdgeCases.empty))))\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n      (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n        (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n          Counting.Bridge.OpenNetwork.EdgeCases.empty))\n      (@Counting.Bridge.OpenNetwork.tensorLanguage Nat Nat.instCommSemiring\n        (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) Counting.Bridge.OpenNetwork.EdgeCases.empty)\n      Nat.instCommSemiring Bool.fintype\n      (@instFintypeSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n        (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n          Counting.Bridge.OpenNetwork.EdgeCases.empty)\n        (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n          (Holant.OpenPorts\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                Counting.Bridge.OpenNetwork.EdgeCases.empty))\n            (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                Counting.Bridge.OpenNetwork.EdgeCases.empty))\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                Counting.Bridge.OpenNetwork.EdgeCases.empty)))\n          (@instFintypeSum.{0, 0}\n            (@Sigma.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    Counting.Bridge.OpenNetwork.EdgeCases.empty)))\n              fun\n                (v :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        Counting.Bridge.OpenNetwork.EdgeCases.empty))) =>\n              Fin\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    Counting.Bridge.OpenNetwork.EdgeCases.empty)\n                  v))\n            (Fin\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  Counting.Bridge.OpenNetwork.EdgeCases.empty)))\n            (@Sigma.instFintype.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    Counting.Bridge.OpenNetwork.EdgeCases.empty)))\n              (fun\n                  (v :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          Counting.Bridge.OpenNetwork.EdgeCases.empty))) =>\n                Fin\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      Counting.Bridge.OpenNetwork.EdgeCases.empty)\n                    v))\n              (fun\n                  (i :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          Counting.Bridge.OpenNetwork.EdgeCases.empty))) =>\n                Fin.fintype\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      Counting.Bridge.OpenNetwork.EdgeCases.empty)\n                    i))\n              (Fin.fintype\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    Counting.Bridge.OpenNetwork.EdgeCases.empty))))\n            (Fin.fintype\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  Counting.Bridge.OpenNetwork.EdgeCases.empty))))\n          (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              Counting.Bridge.OpenNetwork.EdgeCases.empty))))\n      (fun\n          (a b :\n            Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                Counting.Bridge.OpenNetwork.EdgeCases.empty)) =>\n        @instDecidableEqSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n          (@Counting.Bridge.OpenNetwork.Hidden Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            Counting.Bridge.OpenNetwork.EdgeCases.empty)\n          (instDecidableEqFin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (Holant.OpenPorts\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  Counting.Bridge.OpenNetwork.EdgeCases.empty))\n              (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  Counting.Bridge.OpenNetwork.EdgeCases.empty))\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  Counting.Bridge.OpenNetwork.EdgeCases.empty)))\n            (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.OpenNetwork.shape.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                Counting.Bridge.OpenNetwork.EdgeCases.empty)))\n          a b)\n      (@Counting.Bridge.OpenNetwork.toTensorInstance Nat Nat.instCommSemiring\n        (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) Counting.Bridge.OpenNetwork.EdgeCases.empty)\n      x)\n    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.EdgeCases.empty_domain_hidden_port","family":"open","import":"Counting.Bridge.OpenNetwork.All","kind":"theorem","module":"Counting.Bridge.OpenNetwork.EdgeCases","name":"Counting.Bridge.OpenNetwork.EdgeCases.empty_domain_hidden_port","name_semantics":"actual named kernel declaration","readable_type":"Eq (Finset.univ.sum fun _h => 7) 0","role":"client","source_line":22,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/EdgeCases.lean","source_sha256":"4a25a76de220d7d3e0b1ae87c312d17b4b008ab0594ebbd078cde4a9fa97b5cc","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/EdgeCases.lean#L22","type":"@Eq.{1} Nat\n  (@Finset.sum.{0, 0}\n    (@Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden Empty Unit\n        Counting.Bridge.OpenNetwork.EdgeCases.noBoundary →\n      Empty)\n    Nat Nat.instAddCommMonoid\n    (@Finset.univ.{0}\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden Empty Unit\n          Counting.Bridge.OpenNetwork.EdgeCases.noBoundary →\n        Empty)\n      (@Pi.instFintype.{0, 0}\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden Empty Unit\n          Counting.Bridge.OpenNetwork.EdgeCases.noBoundary)\n        (fun\n            (a :\n              @Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden Empty Unit\n                Counting.Bridge.OpenNetwork.EdgeCases.noBoundary) =>\n          Empty)\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden Empty Unit\n          Counting.Bridge.OpenNetwork.EdgeCases.noBoundary)\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden Empty Unit PUnit.fintype.{0}\n          Counting.Bridge.OpenNetwork.EdgeCases.noBoundary)\n        fun\n          (a :\n            @Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden Empty Unit\n              Counting.Bridge.OpenNetwork.EdgeCases.noBoundary) =>\n        Fintype.instEmpty))\n    fun\n      (_h :\n        @Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden Empty Unit\n            Counting.Bridge.OpenNetwork.EdgeCases.noBoundary →\n          Empty) =>\n    @OfNat.ofNat.{0} Nat (nat_lit 7) (instOfNatNat (nat_lit 7)))\n  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.EdgeCases.empty_domain_no_ports","family":"open","import":"Counting.Bridge.OpenNetwork.All","kind":"theorem","module":"Counting.Bridge.OpenNetwork.EdgeCases","name":"Counting.Bridge.OpenNetwork.EdgeCases.empty_domain_no_ports","name_semantics":"actual named kernel declaration","readable_type":"Eq (Finset.univ.sum fun _h => 7) 7","role":"client","source_line":16,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/EdgeCases.lean","source_sha256":"4a25a76de220d7d3e0b1ae87c312d17b4b008ab0594ebbd078cde4a9fa97b5cc","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/EdgeCases.lean#L16","type":"@Eq.{1} Nat\n  (@Finset.sum.{0, 0}\n    (@Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden Empty Empty\n        Counting.Bridge.OpenNetwork.EdgeCases.emptyBoundary →\n      Empty)\n    Nat Nat.instAddCommMonoid\n    (@Finset.univ.{0}\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden Empty Empty\n          Counting.Bridge.OpenNetwork.EdgeCases.emptyBoundary →\n        Empty)\n      (@Pi.instFintype.{0, 0}\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden Empty Empty\n          Counting.Bridge.OpenNetwork.EdgeCases.emptyBoundary)\n        (fun\n            (a :\n              @Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden Empty Empty\n                Counting.Bridge.OpenNetwork.EdgeCases.emptyBoundary) =>\n          Empty)\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden Empty Empty\n          Counting.Bridge.OpenNetwork.EdgeCases.emptyBoundary)\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden Empty Empty Fintype.instEmpty\n          Counting.Bridge.OpenNetwork.EdgeCases.emptyBoundary)\n        fun\n          (a :\n            @Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden Empty Empty\n              Counting.Bridge.OpenNetwork.EdgeCases.emptyBoundary) =>\n        Fintype.instEmpty))\n    fun\n      (_h :\n        @Counting.Bridge.OpenNetwork.BoundaryComplement.Hidden Empty Empty\n            Counting.Bridge.OpenNetwork.EdgeCases.emptyBoundary →\n          Empty) =>\n    @OfNat.ofNat.{0} Nat (nat_lit 7) (instOfNatNat (nat_lit 7)))\n  (@OfNat.ofNat.{0} Nat (nat_lit 7) (instOfNatNat (nat_lit 7)))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.assignmentEquiv","family":"open","import":"Counting.Bridge.OpenNetwork","kind":"definition","module":"Counting.Bridge.OpenNetwork","name":"Counting.Bridge.OpenNetwork.assignmentEquiv","name_semantics":"actual named kernel declaration","readable_type":"{R : Type} →\n  {n : Nat} →\n    (N : Holant.OpenNetwork R n) →\n      (x : Fin n → Bool) →\n        Equiv (Counting.Bridge.OpenNetwork.Hidden N → Bool)\n          (Subtype fun z => ∀ (j : Fin n), Eq (z (Function.instFunLikeEmbedding.coe N.shape.boundary j)) (x j))","role":"public","source_line":34,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork.lean","source_sha256":"2f6daf7c045f0c454616fefcb738cd9b8cf47dc95f01f37633c4d6c960788e8f","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork.lean#L34","type":"{R : Type} →\n  {n : Nat} →\n    (N : Holant.OpenNetwork.{0} R n) →\n      (x : Fin n → Bool) →\n        Equiv.{1, 1} (@Counting.Bridge.OpenNetwork.Hidden R n N → Bool)\n          (@Subtype.{1} (@Counting.Bridge.OpenNetwork.Ports R n N → Bool)\n            fun (z : @Counting.Bridge.OpenNetwork.Ports R n N → Bool) =>\n            ∀ (j : Fin n),\n              @Eq.{1} Bool\n                (z\n                  (@DFunLike.coe.{1, 1, 1}\n                    (Function.Embedding.{1, 1} (Fin n)\n                      (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n                        (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n                        (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n                    (Fin n)\n                    (fun (x : Fin n) =>\n                      Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n                        (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n                        (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n                    (@Function.instFunLikeEmbedding.{1, 1} (Fin n)\n                      (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n                        (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n                        (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n                    (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N)) j))\n                (x j))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.disjoint","family":"open","import":"Counting.Bridge.OpenNetwork.Composition","kind":"definition","module":"Counting.Bridge.OpenNetwork.Composition","name":"Counting.Bridge.OpenNetwork.disjoint","name_semantics":"actual named kernel declaration","readable_type":"{R : Type} → {m n : Nat} → Holant.OpenNetwork R m → Holant.OpenNetwork R n → Holant.OpenNetwork R (instHAdd.hAdd m n)","role":"public","source_line":58,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Composition.lean","source_sha256":"3b66dccbde2b6518dfa3d021eb00b9306cbbfeaf0d97405c2b32cf0c5e365fd5","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Composition.lean#L58","type":"{R : Type} →\n  {m n : Nat} →\n    (N : Holant.OpenNetwork.{0} R m) →\n      (M : Holant.OpenNetwork.{0} R n) →\n        Holant.OpenNetwork.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.disjointInstance","family":"open","import":"Counting.Bridge.OpenNetwork.Composition","kind":"definition","module":"Counting.Bridge.OpenNetwork.Composition","name":"Counting.Bridge.OpenNetwork.disjointInstance","name_semantics":"actual named kernel declaration","readable_type":"{R : Type} →\n  {m n : Nat} →\n    [inst : CommSemiring R] →\n      (N : Holant.OpenNetwork R m) →\n        (M : Holant.OpenNetwork R n) →\n          Counting.Model.OpenInstance\n            (Counting.Bridge.OpenNetwork.sumLanguage (Counting.Bridge.OpenNetwork.language N)\n              (Counting.Bridge.OpenNetwork.language M))\n            (Fin (instHAdd.hAdd m n))\n            (Sum (Counting.Bridge.OpenNetwork.Hidden N) (Counting.Bridge.OpenNetwork.Hidden M))","role":"public","source_line":94,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Composition.lean","source_sha256":"3b66dccbde2b6518dfa3d021eb00b9306cbbfeaf0d97405c2b32cf0c5e365fd5","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Composition.lean#L94","type":"{R : Type} →\n  {m n : Nat} →\n    [inst : CommSemiring.{0} R] →\n      (N : Holant.OpenNetwork.{0} R m) →\n        (M : Holant.OpenNetwork.{0} R n) →\n          @Counting.Model.OpenInstance Bool R\n            (Sum.{0, 0}\n              (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N)))\n                (Fin (@Holant.OpenNetworkShape.edges m (@Holant.OpenNetwork.shape.{0} R m N))))\n              (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M)))\n                (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n M)))))\n            (@Counting.Bridge.OpenNetwork.sumLanguage Bool R\n              (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N)))\n                (Fin (@Holant.OpenNetworkShape.edges m (@Holant.OpenNetwork.shape.{0} R m N))))\n              (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M)))\n                (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n M))))\n              (@Counting.Bridge.OpenNetwork.language R m inst N) (@Counting.Bridge.OpenNetwork.language R n inst M))\n            (Fin (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n))\n            (Sum.{0, 0} (@Counting.Bridge.OpenNetwork.Hidden R m N) (@Counting.Bridge.OpenNetwork.Hidden R n M))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.disjointTensorInstance","family":"open","import":"Counting.Bridge.OpenNetwork.Composition","kind":"definition","module":"Counting.Bridge.OpenNetwork.Composition","name":"Counting.Bridge.OpenNetwork.disjointTensorInstance","name_semantics":"actual named kernel declaration","readable_type":"{R : Type} →\n  {m n : Nat} →\n    [inst : CommSemiring R] →\n      (N : Holant.OpenNetwork R m) →\n        (M : Holant.OpenNetwork R n) →\n          Counting.Model.OpenInstance\n            (Counting.Bridge.OpenNetwork.sumLanguage (Counting.Bridge.OpenNetwork.tensorLanguage N)\n              (Counting.Bridge.OpenNetwork.tensorLanguage M))\n            (Fin (instHAdd.hAdd m n))\n            (Sum (Sum (Fin m) (Counting.Bridge.OpenNetwork.Hidden N))\n              (Sum (Fin n) (Counting.Bridge.OpenNetwork.Hidden M)))","role":"public","source_line":130,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Composition.lean","source_sha256":"3b66dccbde2b6518dfa3d021eb00b9306cbbfeaf0d97405c2b32cf0c5e365fd5","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Composition.lean#L130","type":"{R : Type} →\n  {m n : Nat} →\n    [inst : CommSemiring.{0} R] →\n      (N : Holant.OpenNetwork.{0} R m) →\n        (M : Holant.OpenNetwork.{0} R n) →\n          @Counting.Model.OpenInstance Bool R\n            (Sum.{0, 0}\n              (Sum.{0, 0}\n                (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N)))\n                  (Fin (@Holant.OpenNetworkShape.edges m (@Holant.OpenNetwork.shape.{0} R m N))))\n                (Fin m))\n              (Sum.{0, 0}\n                (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M)))\n                  (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n M))))\n                (Fin n)))\n            (@Counting.Bridge.OpenNetwork.sumLanguage Bool R\n              (Sum.{0, 0}\n                (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N)))\n                  (Fin (@Holant.OpenNetworkShape.edges m (@Holant.OpenNetwork.shape.{0} R m N))))\n                (Fin m))\n              (Sum.{0, 0}\n                (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M)))\n                  (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n M))))\n                (Fin n))\n              (@Counting.Bridge.OpenNetwork.tensorLanguage R inst m N)\n              (@Counting.Bridge.OpenNetwork.tensorLanguage R inst n M))\n            (Fin (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n))\n            (Sum.{0, 0} (Sum.{0, 0} (Fin m) (@Counting.Bridge.OpenNetwork.Hidden R m N))\n              (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n M)))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.noFreeOfOrdinary","family":"open","import":"Counting.Bridge.OpenNetwork.Ordinary","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Ordinary","name":"Counting.Bridge.OpenNetwork.noFreeOfOrdinary","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : Type} {n : Nat} (N : Holant.OpenNetwork R n),\n  (∀ (j : Fin n), Exists fun p => Eq (Function.instFunLikeEmbedding.coe N.shape.boundary j) (Sum.inl p)) →\n    IsEmpty (Fin N.shape.free)","role":"public","source_line":15,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Ordinary.lean","source_sha256":"36421c1bd69e395e772ac4fba9514d3eaff5d02cc748ce3fbc6532cd7636d97c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Ordinary.lean#L15","type":"∀ {R : Type} {n : Nat} (N : Holant.OpenNetwork.{0} R n)\n  (h :\n    ∀ (j : Fin n),\n      @Exists.{1}\n        (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n          fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n          Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n        fun\n          (p :\n            @Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n              Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v)) =>\n        @Eq.{1}\n          (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n            (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n            (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (@DFunLike.coe.{1, 1, 1}\n            (Function.Embedding.{1, 1} (Fin n)\n              (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (Fin n)\n            (fun (x : Fin n) =>\n              Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (@Function.instFunLikeEmbedding.{1, 1} (Fin n)\n              (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N)) j)\n          (@Sum.inl.{0, 0}\n            (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n              Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n            (Fin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))) p)),\n  IsEmpty.{1} (Fin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.occurrences_length","family":"open","import":"Counting.Bridge.OpenNetwork","kind":"theorem","module":"Counting.Bridge.OpenNetwork","name":"Counting.Bridge.OpenNetwork.occurrences_length","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : Type} {n : Nat} [inst : CommSemiring R] (N : Holant.OpenNetwork R n),\n  Eq (Counting.Bridge.OpenNetwork.toOpenInstance N).occurrences.length (instHAdd.hAdd N.shape.vertices N.shape.edges)","role":"public","source_line":61,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork.lean","source_sha256":"2f6daf7c045f0c454616fefcb738cd9b8cf47dc95f01f37633c4d6c960788e8f","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork.lean#L61","type":"∀ {R : Type} {n : Nat} [inst : CommSemiring.{0} R] (N : Holant.OpenNetwork.{0} R n),\n  @Eq.{1} Nat\n    (@List.length.{0}\n      (@Counting.Model.Occurrence Bool R\n        (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n        (@Counting.Bridge.OpenNetwork.language R n inst N)\n        (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N)))\n      (@Counting.Model.OpenInstance.occurrences Bool R\n        (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n        (@Counting.Bridge.OpenNetwork.language R n inst N) (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N)\n        (@Counting.Bridge.OpenNetwork.toOpenInstance R n inst N)))\n    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n      (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n      (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N)))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.ordinaryNetwork","family":"open","import":"Counting.Bridge.OpenNetwork.Ordinary","kind":"definition","module":"Counting.Bridge.OpenNetwork.Ordinary","name":"Counting.Bridge.OpenNetwork.ordinaryNetwork","name_semantics":"actual named kernel declaration","readable_type":"{R : Type} →\n  {n : Nat} →\n    [CommSemiring R] →\n      (N : Holant.OpenNetwork R n) →\n        (∀ (j : Fin n), Exists fun p => Eq (Function.instFunLikeEmbedding.coe N.shape.boundary j) (Sum.inl p)) →\n          Holant.Network R n","role":"public","source_line":25,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Ordinary.lean","source_sha256":"36421c1bd69e395e772ac4fba9514d3eaff5d02cc748ce3fbc6532cd7636d97c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Ordinary.lean#L25","type":"{R : Type} →\n  {n : Nat} →\n    [CommSemiring.{0} R] →\n      (N : Holant.OpenNetwork.{0} R n) →\n        (h :\n            ∀ (j : Fin n),\n              @Exists.{1}\n                (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n                  fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n                  Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n                fun\n                  (p :\n                    @Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n                      fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n                      Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v)) =>\n                @Eq.{1}\n                  (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n                    (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n                    (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n                  (@DFunLike.coe.{1, 1, 1}\n                    (Function.Embedding.{1, 1} (Fin n)\n                      (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n                        (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n                        (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n                    (Fin n)\n                    (fun (x : Fin n) =>\n                      Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n                        (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n                        (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n                    (@Function.instFunLikeEmbedding.{1, 1} (Fin n)\n                      (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n                        (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n                        (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n                    (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N)) j)\n                  (@Sum.inl.{0, 0}\n                    (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n                      fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n                      Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n                    (Fin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))) p)) →\n          Holant.Network.{0} R n"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.partition_closed","family":"open","import":"Counting.Bridge.OpenNetwork.Ordinary","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Ordinary","name":"Counting.Bridge.OpenNetwork.partition_closed","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : Type} [inst : CommSemiring R] (N : Holant.OpenNetwork R 0) (x : Fin 0 → Bool),\n  Eq ((Counting.Bridge.OpenNetwork.toOpenInstance N).partition x)\n    ((Counting.Bridge.Holant.toOpenInstance (Counting.Bridge.OpenNetwork.ordinaryNetwork N ⋯)).partition x)","role":"public","source_line":57,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Ordinary.lean","source_sha256":"36421c1bd69e395e772ac4fba9514d3eaff5d02cc748ce3fbc6532cd7636d97c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Ordinary.lean#L57","type":"∀ {R : Type} [inst : CommSemiring.{0} R]\n  (N : Holant.OpenNetwork.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n  (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) → Bool),\n  @Eq.{1} R\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0}\n        (Fin\n          (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n        (Fin\n          (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n      (@Counting.Bridge.OpenNetwork.Hidden R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n      (@Counting.Bridge.OpenNetwork.language R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) inst N)\n      inst Bool.fintype\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n        (Holant.OpenPorts\n          (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n          (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n          (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n        (@instFintypeSum.{0, 0}\n          (@Sigma.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n            fun\n              (v :\n                Fin\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      N))) =>\n            Fin\n              (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N) v))\n          (Fin\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n          (@Sigma.instFintype.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n            (fun\n                (v :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        N))) =>\n              Fin\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N) v))\n            (fun\n                (i :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        N))) =>\n              Fin.fintype\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N) i))\n            (Fin.fintype\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n          (Fin.fintype\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n        (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n        (Holant.OpenPorts\n          (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n          (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n          (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n        (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n      (@Counting.Bridge.OpenNetwork.toOpenInstance R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) inst\n        N)\n      x)\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.vertices\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape Bool R\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Counting.Bridge.OpenNetwork.ordinaryNetwork R\n                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) inst N\n                  fun (j : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) =>\n                  @Fin.elim0.{0}\n                    (@Exists.{1}\n                      (@Sigma.{0, 0}\n                        (Fin\n                          (@Holant.OpenNetworkShape.vertices\n                            (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                        fun\n                          (v :\n                            Fin\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                        Fin\n                          (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                            v))\n                      fun\n                        (p :\n                          @Sigma.{0, 0}\n                            (Fin\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                            fun\n                              (v :\n                                Fin\n                                  (@Holant.OpenNetworkShape.vertices\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                            Fin\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                                v)) =>\n                      @Eq.{1}\n                        (Holant.OpenPorts\n                          (@Holant.OpenNetworkShape.vertices\n                            (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                          (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                          (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                        (@DFunLike.coe.{1, 1, 1}\n                          (Function.Embedding.{1, 1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                            (Holant.OpenPorts\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.free\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n                          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                          (fun (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) =>\n                            Holant.OpenPorts\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.free\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                          (@Function.instFunLikeEmbedding.{1, 1}\n                            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                            (Holant.OpenPorts\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.free\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n                          (@Holant.OpenNetworkShape.boundary\n                            (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                          j)\n                        (@Sum.inl.{0, 0}\n                          (@Sigma.{0, 0}\n                            (Fin\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                            fun\n                              (v :\n                                Fin\n                                  (@Holant.OpenNetworkShape.vertices\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                            Fin\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                                v))\n                          (Fin\n                            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                          p))\n                    j)))))\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape Bool R\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Counting.Bridge.OpenNetwork.ordinaryNetwork R\n                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) inst N\n                  fun (j : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) =>\n                  @Fin.elim0.{0}\n                    (@Exists.{1}\n                      (@Sigma.{0, 0}\n                        (Fin\n                          (@Holant.OpenNetworkShape.vertices\n                            (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                        fun\n                          (v :\n                            Fin\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                        Fin\n                          (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                            v))\n                      fun\n                        (p :\n                          @Sigma.{0, 0}\n                            (Fin\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                            fun\n                              (v :\n                                Fin\n                                  (@Holant.OpenNetworkShape.vertices\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                            Fin\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                                v)) =>\n                      @Eq.{1}\n                        (Holant.OpenPorts\n                          (@Holant.OpenNetworkShape.vertices\n                            (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                          (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                          (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                        (@DFunLike.coe.{1, 1, 1}\n                          (Function.Embedding.{1, 1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                            (Holant.OpenPorts\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.free\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n                          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                          (fun (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) =>\n                            Holant.OpenPorts\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.free\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                          (@Function.instFunLikeEmbedding.{1, 1}\n                            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                            (Holant.OpenPorts\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.free\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n                          (@Holant.OpenNetworkShape.boundary\n                            (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                          j)\n                        (@Sum.inl.{0, 0}\n                          (@Sigma.{0, 0}\n                            (Fin\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                            fun\n                              (v :\n                                Fin\n                                  (@Holant.OpenNetworkShape.vertices\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                            Fin\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                                v))\n                          (Fin\n                            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                          p))\n                    j))))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n      (Prod.{0, 0}\n        (Fin\n          (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Counting.Bridge.OpenNetwork.ordinaryNetwork R\n                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) inst N\n                fun (j : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) =>\n                @Fin.elim0.{0}\n                  (@Exists.{1}\n                    (@Sigma.{0, 0}\n                      (Fin\n                        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N)))\n                      fun\n                        (v :\n                          Fin\n                            (@Holant.OpenNetworkShape.vertices\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                      Fin\n                        (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N)\n                          v))\n                    fun\n                      (p :\n                        @Sigma.{0, 0}\n                          (Fin\n                            (@Holant.OpenNetworkShape.vertices\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                          fun\n                            (v :\n                              Fin\n                                (@Holant.OpenNetworkShape.vertices\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                  (@Holant.OpenNetwork.shape.{0} R\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                          Fin\n                            (@Holant.OpenNetworkShape.arity\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                              v)) =>\n                    @Eq.{1}\n                      (Holant.OpenPorts\n                        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N))\n                        (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N))\n                        (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N)))\n                      (@DFunLike.coe.{1, 1, 1}\n                        (Function.Embedding.{1, 1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                          (Holant.OpenPorts\n                            (@Holant.OpenNetworkShape.vertices\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                            (@Holant.OpenNetworkShape.arity\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n                        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                        (fun (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) =>\n                          Holant.OpenPorts\n                            (@Holant.OpenNetworkShape.vertices\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                            (@Holant.OpenNetworkShape.arity\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                        (@Function.instFunLikeEmbedding.{1, 1}\n                          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                          (Holant.OpenPorts\n                            (@Holant.OpenNetworkShape.vertices\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                            (@Holant.OpenNetworkShape.arity\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n                        (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N))\n                        j)\n                      (@Sum.inl.{0, 0}\n                        (@Sigma.{0, 0}\n                          (Fin\n                            (@Holant.OpenNetworkShape.vertices\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                          fun\n                            (v :\n                              Fin\n                                (@Holant.OpenNetworkShape.vertices\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                  (@Holant.OpenNetwork.shape.{0} R\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                          Fin\n                            (@Holant.OpenNetworkShape.arity\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                              v))\n                        (Fin\n                          (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                        p))\n                  j))))\n        Bool)\n      (@Counting.Model.KernelNetwork.language Bool R (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n        (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n          (@Counting.Bridge.OpenNetwork.ordinaryNetwork R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            inst N fun (j : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) =>\n            @Fin.elim0.{0}\n              (@Exists.{1}\n                (@Sigma.{0, 0}\n                  (Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        N)))\n                  fun\n                    (v :\n                      Fin\n                        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N))) =>\n                  Fin\n                    (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                      v))\n                fun\n                  (p :\n                    @Sigma.{0, 0}\n                      (Fin\n                        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N)))\n                      fun\n                        (v :\n                          Fin\n                            (@Holant.OpenNetworkShape.vertices\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                      Fin\n                        (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N)\n                          v)) =>\n                @Eq.{1}\n                  (Holant.OpenPorts\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                    (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                    (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        N)))\n                  (@DFunLike.coe.{1, 1, 1}\n                    (Function.Embedding.{1, 1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                      (Holant.OpenPorts\n                        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N))\n                        (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N))\n                        (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N))))\n                    (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                    (fun (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) =>\n                      Holant.OpenPorts\n                        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N))\n                        (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N))\n                        (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N)))\n                    (@Function.instFunLikeEmbedding.{1, 1}\n                      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                      (Holant.OpenPorts\n                        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N))\n                        (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N))\n                        (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N))))\n                    (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                    j)\n                  (@Sum.inl.{0, 0}\n                    (@Sigma.{0, 0}\n                      (Fin\n                        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N)))\n                      fun\n                        (v :\n                          Fin\n                            (@Holant.OpenNetworkShape.vertices\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                      Fin\n                        (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N)\n                          v))\n                    (Fin\n                      (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          N)))\n                    p))\n              j)))\n      inst Bool.fintype\n      (@instFintypeProd.{0, 0}\n        (Fin\n          (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Counting.Bridge.OpenNetwork.ordinaryNetwork R\n                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) inst N\n                fun (j : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) =>\n                @Fin.elim0.{0}\n                  (@Exists.{1}\n                    (@Sigma.{0, 0}\n                      (Fin\n                        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N)))\n                      fun\n                        (v :\n                          Fin\n                            (@Holant.OpenNetworkShape.vertices\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                      Fin\n                        (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N)\n                          v))\n                    fun\n                      (p :\n                        @Sigma.{0, 0}\n                          (Fin\n                            (@Holant.OpenNetworkShape.vertices\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                          fun\n                            (v :\n                              Fin\n                                (@Holant.OpenNetworkShape.vertices\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                  (@Holant.OpenNetwork.shape.{0} R\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                          Fin\n                            (@Holant.OpenNetworkShape.arity\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                              v)) =>\n                    @Eq.{1}\n                      (Holant.OpenPorts\n                        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N))\n                        (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N))\n                        (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N)))\n                      (@DFunLike.coe.{1, 1, 1}\n                        (Function.Embedding.{1, 1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                          (Holant.OpenPorts\n                            (@Holant.OpenNetworkShape.vertices\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                            (@Holant.OpenNetworkShape.arity\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n                        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                        (fun (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) =>\n                          Holant.OpenPorts\n                            (@Holant.OpenNetworkShape.vertices\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                            (@Holant.OpenNetworkShape.arity\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                        (@Function.instFunLikeEmbedding.{1, 1}\n                          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                          (Holant.OpenPorts\n                            (@Holant.OpenNetworkShape.vertices\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                            (@Holant.OpenNetworkShape.arity\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n                        (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N))\n                        j)\n                      (@Sum.inl.{0, 0}\n                        (@Sigma.{0, 0}\n                          (Fin\n                            (@Holant.OpenNetworkShape.vertices\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                          fun\n                            (v :\n                              Fin\n                                (@Holant.OpenNetworkShape.vertices\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                  (@Holant.OpenNetwork.shape.{0} R\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                          Fin\n                            (@Holant.OpenNetworkShape.arity\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                              v))\n                        (Fin\n                          (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                        p))\n                  j))))\n        Bool\n        (Fin.fintype\n          (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Counting.Bridge.OpenNetwork.ordinaryNetwork R\n                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) inst N\n                fun (j : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) =>\n                @Fin.elim0.{0}\n                  (@Exists.{1}\n                    (@Sigma.{0, 0}\n                      (Fin\n                        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N)))\n                      fun\n                        (v :\n                          Fin\n                            (@Holant.OpenNetworkShape.vertices\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                      Fin\n                        (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N)\n                          v))\n                    fun\n                      (p :\n                        @Sigma.{0, 0}\n                          (Fin\n                            (@Holant.OpenNetworkShape.vertices\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                          fun\n                            (v :\n                              Fin\n                                (@Holant.OpenNetworkShape.vertices\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                  (@Holant.OpenNetwork.shape.{0} R\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                          Fin\n                            (@Holant.OpenNetworkShape.arity\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                              v)) =>\n                    @Eq.{1}\n                      (Holant.OpenPorts\n                        (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N))\n                        (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N))\n                        (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N)))\n                      (@DFunLike.coe.{1, 1, 1}\n                        (Function.Embedding.{1, 1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                          (Holant.OpenPorts\n                            (@Holant.OpenNetworkShape.vertices\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                            (@Holant.OpenNetworkShape.arity\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n                        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                        (fun (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) =>\n                          Holant.OpenPorts\n                            (@Holant.OpenNetworkShape.vertices\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                            (@Holant.OpenNetworkShape.arity\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                        (@Function.instFunLikeEmbedding.{1, 1}\n                          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                          (Holant.OpenPorts\n                            (@Holant.OpenNetworkShape.vertices\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                            (@Holant.OpenNetworkShape.arity\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n                        (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            N))\n                        j)\n                      (@Sum.inl.{0, 0}\n                        (@Sigma.{0, 0}\n                          (Fin\n                            (@Holant.OpenNetworkShape.vertices\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                          fun\n                            (v :\n                              Fin\n                                (@Holant.OpenNetworkShape.vertices\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                  (@Holant.OpenNetwork.shape.{0} R\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                          Fin\n                            (@Holant.OpenNetworkShape.arity\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                              v))\n                        (Fin\n                          (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                        p))\n                  j))))\n        Bool.fintype)\n      (fun\n          (a b :\n            Prod.{0, 0}\n              (Fin\n                (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Counting.Bridge.OpenNetwork.ordinaryNetwork R\n                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) inst N\n                      fun (j : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) =>\n                      @Fin.elim0.{0}\n                        (@Exists.{1}\n                          (@Sigma.{0, 0}\n                            (Fin\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                            fun\n                              (v :\n                                Fin\n                                  (@Holant.OpenNetworkShape.vertices\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                            Fin\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                                v))\n                          fun\n                            (p :\n                              @Sigma.{0, 0}\n                                (Fin\n                                  (@Holant.OpenNetworkShape.vertices\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                                fun\n                                  (v :\n                                    Fin\n                                      (@Holant.OpenNetworkShape.vertices\n                                        (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                        (@Holant.OpenNetwork.shape.{0} R\n                                          (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                                Fin\n                                  (@Holant.OpenNetworkShape.arity\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                                    v)) =>\n                          @Eq.{1}\n                            (Holant.OpenPorts\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.free\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                            (@DFunLike.coe.{1, 1, 1}\n                              (Function.Embedding.{1, 1}\n                                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                                (Holant.OpenPorts\n                                  (@Holant.OpenNetworkShape.vertices\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                                  (@Holant.OpenNetworkShape.arity\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                                  (@Holant.OpenNetworkShape.free\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n                              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                              (fun (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) =>\n                                Holant.OpenPorts\n                                  (@Holant.OpenNetworkShape.vertices\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                                  (@Holant.OpenNetworkShape.arity\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                                  (@Holant.OpenNetworkShape.free\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                              (@Function.instFunLikeEmbedding.{1, 1}\n                                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                                (Holant.OpenPorts\n                                  (@Holant.OpenNetworkShape.vertices\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                                  (@Holant.OpenNetworkShape.arity\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                                  (@Holant.OpenNetworkShape.free\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n                              (@Holant.OpenNetworkShape.boundary\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              j)\n                            (@Sum.inl.{0, 0}\n                              (@Sigma.{0, 0}\n                                (Fin\n                                  (@Holant.OpenNetworkShape.vertices\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                                fun\n                                  (v :\n                                    Fin\n                                      (@Holant.OpenNetworkShape.vertices\n                                        (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                        (@Holant.OpenNetwork.shape.{0} R\n                                          (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                                Fin\n                                  (@Holant.OpenNetworkShape.arity\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                                    v))\n                              (Fin\n                                (@Holant.OpenNetworkShape.free\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                  (@Holant.OpenNetwork.shape.{0} R\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                              p))\n                        j))))\n              Bool) =>\n        @instDecidableEqProd.{0, 0}\n          (Fin\n            (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Counting.Bridge.OpenNetwork.ordinaryNetwork R\n                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) inst N\n                  fun (j : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) =>\n                  @Fin.elim0.{0}\n                    (@Exists.{1}\n                      (@Sigma.{0, 0}\n                        (Fin\n                          (@Holant.OpenNetworkShape.vertices\n                            (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                        fun\n                          (v :\n                            Fin\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                        Fin\n                          (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                            v))\n                      fun\n                        (p :\n                          @Sigma.{0, 0}\n                            (Fin\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                            fun\n                              (v :\n                                Fin\n                                  (@Holant.OpenNetworkShape.vertices\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                            Fin\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                                v)) =>\n                      @Eq.{1}\n                        (Holant.OpenPorts\n                          (@Holant.OpenNetworkShape.vertices\n                            (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                          (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                          (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                        (@DFunLike.coe.{1, 1, 1}\n                          (Function.Embedding.{1, 1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                            (Holant.OpenPorts\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.free\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n                          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                          (fun (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) =>\n                            Holant.OpenPorts\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.free\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                          (@Function.instFunLikeEmbedding.{1, 1}\n                            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                            (Holant.OpenPorts\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.free\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n                          (@Holant.OpenNetworkShape.boundary\n                            (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                          j)\n                        (@Sum.inl.{0, 0}\n                          (@Sigma.{0, 0}\n                            (Fin\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                            fun\n                              (v :\n                                Fin\n                                  (@Holant.OpenNetworkShape.vertices\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                            Fin\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                                v))\n                          (Fin\n                            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                          p))\n                    j))))\n          Bool\n          (instDecidableEqFin\n            (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Counting.Bridge.OpenNetwork.ordinaryNetwork R\n                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) inst N\n                  fun (j : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) =>\n                  @Fin.elim0.{0}\n                    (@Exists.{1}\n                      (@Sigma.{0, 0}\n                        (Fin\n                          (@Holant.OpenNetworkShape.vertices\n                            (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                        fun\n                          (v :\n                            Fin\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                        Fin\n                          (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                            v))\n                      fun\n                        (p :\n                          @Sigma.{0, 0}\n                            (Fin\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                            fun\n                              (v :\n                                Fin\n                                  (@Holant.OpenNetworkShape.vertices\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                            Fin\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                                v)) =>\n                      @Eq.{1}\n                        (Holant.OpenPorts\n                          (@Holant.OpenNetworkShape.vertices\n                            (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                          (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                          (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                        (@DFunLike.coe.{1, 1, 1}\n                          (Function.Embedding.{1, 1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                            (Holant.OpenPorts\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.free\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n                          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                          (fun (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) =>\n                            Holant.OpenPorts\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.free\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                          (@Function.instFunLikeEmbedding.{1, 1}\n                            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                            (Holant.OpenPorts\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                              (@Holant.OpenNetworkShape.free\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n                          (@Holant.OpenNetworkShape.boundary\n                            (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                          j)\n                        (@Sum.inl.{0, 0}\n                          (@Sigma.{0, 0}\n                            (Fin\n                              (@Holant.OpenNetworkShape.vertices\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                            fun\n                              (v :\n                                Fin\n                                  (@Holant.OpenNetworkShape.vertices\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                    (@Holant.OpenNetwork.shape.{0} R\n                                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                            Fin\n                              (@Holant.OpenNetworkShape.arity\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                                (@Holant.OpenNetwork.shape.{0} R\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                                v))\n                          (Fin\n                            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.OpenNetwork.shape.{0} R\n                                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                          p))\n                    j))))\n          instDecidableEqBool a b)\n      (@Counting.Bridge.Holant.toOpenInstance R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n        (@Counting.Bridge.OpenNetwork.ordinaryNetwork R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n          inst N fun (j : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) =>\n          @Fin.elim0.{0}\n            (@Exists.{1}\n              (@Sigma.{0, 0}\n                (Fin\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                fun\n                  (v :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          N))) =>\n                Fin\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                    v))\n              fun\n                (p :\n                  @Sigma.{0, 0}\n                    (Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          N)))\n                    fun\n                      (v :\n                        Fin\n                          (@Holant.OpenNetworkShape.vertices\n                            (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                    Fin\n                      (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          N)\n                        v)) =>\n              @Eq.{1}\n                (Holant.OpenPorts\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                  (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n                (@DFunLike.coe.{1, 1, 1}\n                  (Function.Embedding.{1, 1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                    (Holant.OpenPorts\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          N))\n                      (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          N))\n                      (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          N))))\n                  (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                  (fun (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) =>\n                    Holant.OpenPorts\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          N))\n                      (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          N))\n                      (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          N)))\n                  (@Function.instFunLikeEmbedding.{1, 1}\n                    (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                    (Holant.OpenPorts\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          N))\n                      (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          N))\n                      (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          N))))\n                  (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n                  j)\n                (@Sum.inl.{0, 0}\n                  (@Sigma.{0, 0}\n                    (Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          N)))\n                    fun\n                      (v :\n                        Fin\n                          (@Holant.OpenNetworkShape.vertices\n                            (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.OpenNetwork.shape.{0} R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))) =>\n                    Fin\n                      (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          N)\n                        v))\n                  (Fin\n                    (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        N)))\n                  p))\n            j))\n      x)"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.partition_disjointTensor_commutes","family":"open","import":"Counting.Bridge.OpenNetwork.Composition","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Composition","name":"Counting.Bridge.OpenNetwork.partition_disjointTensor_commutes","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : Type} {m n : Nat} [inst : CommSemiring R] (N : Holant.OpenNetwork R m) (M : Holant.OpenNetwork R n)\n  (W : Holant.EdgeKind),\n  (∀ (e : Fin N.shape.edges), Eq (N.edge e) W) →\n    (∀ (e : Fin M.shape.edges), Eq (M.edge e) W) →\n      ∀ (x : Fin (instHAdd.hAdd m n) → Bool),\n        Eq ((Counting.Bridge.OpenNetwork.toTensorInstance (Counting.Bridge.OpenNetwork.disjoint N M)).partition x)\n          ((Counting.Bridge.OpenNetwork.disjointTensorInstance N M).partition x)","role":"public","source_line":151,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Composition.lean","source_sha256":"3b66dccbde2b6518dfa3d021eb00b9306cbbfeaf0d97405c2b32cf0c5e365fd5","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Composition.lean#L151","type":"∀ {R : Type} {m n : Nat} [inst : CommSemiring.{0} R] (N : Holant.OpenNetwork.{0} R m) (M : Holant.OpenNetwork.{0} R n)\n  (W : Holant.EdgeKind)\n  (hN :\n    ∀ (e : Fin (@Holant.OpenNetworkShape.edges m (@Holant.OpenNetwork.shape.{0} R m N))),\n      @Eq.{1} Holant.EdgeKind (@Holant.OpenNetwork.edge.{0} R m N e) W)\n  (hM :\n    ∀ (e : Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n M))),\n      @Eq.{1} Holant.EdgeKind (@Holant.OpenNetwork.edge.{0} R n M e) W)\n  (x : Fin (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n) → Bool),\n  @Eq.{1} R\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0}\n        (Sum.{0, 0}\n          (Fin\n            (@Holant.OpenNetworkShape.vertices (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n              (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                (@Counting.Bridge.OpenNetwork.disjoint R m n N M))))\n          (Fin\n            (@Holant.OpenNetworkShape.edges (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n              (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))))\n        (Fin (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)))\n      (Fin (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n))\n      (Sum.{0, 0} (Fin (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n))\n        (@Counting.Bridge.OpenNetwork.Hidden R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n          (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))\n      (@Counting.Bridge.OpenNetwork.tensorLanguage R inst\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n        (@Counting.Bridge.OpenNetwork.disjoint R m n N M))\n      inst Bool.fintype\n      (@instFintypeSum.{0, 0} (Fin (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n))\n        (@Counting.Bridge.OpenNetwork.Hidden R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n          (@Counting.Bridge.OpenNetwork.disjoint R m n N M))\n        (Fin.fintype (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n))\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n          (Fin (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n))\n          (Holant.OpenPorts\n            (@Holant.OpenNetworkShape.vertices (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n              (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))\n            (@Holant.OpenNetworkShape.arity (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n              (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))\n            (@Holant.OpenNetworkShape.free (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n              (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                (@Counting.Bridge.OpenNetwork.disjoint R m n N M))))\n          (@instFintypeSum.{0, 0}\n            (@Sigma.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                  (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                    (@Counting.Bridge.OpenNetwork.disjoint R m n N M))))\n              fun\n                (v :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices\n                      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                      (@Holant.OpenNetwork.shape.{0} R\n                        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                        (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))) =>\n              Fin\n                (@Holant.OpenNetworkShape.arity (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                  (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                    (@Counting.Bridge.OpenNetwork.disjoint R m n N M))\n                  v))\n            (Fin\n              (@Holant.OpenNetworkShape.free (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                  (@Counting.Bridge.OpenNetwork.disjoint R m n N M))))\n            (@Sigma.instFintype.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                  (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                    (@Counting.Bridge.OpenNetwork.disjoint R m n N M))))\n              (fun\n                  (v :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices\n                        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                        (@Holant.OpenNetwork.shape.{0} R\n                          (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                          (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))) =>\n                Fin\n                  (@Holant.OpenNetworkShape.arity (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                    (@Holant.OpenNetwork.shape.{0} R\n                      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                      (@Counting.Bridge.OpenNetwork.disjoint R m n N M))\n                    v))\n              (fun\n                  (i :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices\n                        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                        (@Holant.OpenNetwork.shape.{0} R\n                          (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                          (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))) =>\n                Fin.fintype\n                  (@Holant.OpenNetworkShape.arity (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                    (@Holant.OpenNetwork.shape.{0} R\n                      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                      (@Counting.Bridge.OpenNetwork.disjoint R m n N M))\n                    i))\n              (Fin.fintype\n                (@Holant.OpenNetworkShape.vertices (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                  (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                    (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))))\n            (Fin.fintype\n              (@Holant.OpenNetworkShape.free (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                  (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))))\n          (@Holant.OpenNetworkShape.boundary (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n            (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n              (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))))\n      (fun\n          (a b :\n            Sum.{0, 0} (Fin (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n))\n              (@Counting.Bridge.OpenNetwork.Hidden R\n                (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                (@Counting.Bridge.OpenNetwork.disjoint R m n N M))) =>\n        @instDecidableEqSum.{0, 0} (Fin (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n))\n          (@Counting.Bridge.OpenNetwork.Hidden R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n            (@Counting.Bridge.OpenNetwork.disjoint R m n N M))\n          (instDecidableEqFin (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n))\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n            (Fin (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n))\n            (Holant.OpenPorts\n              (@Holant.OpenNetworkShape.vertices (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                  (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))\n              (@Holant.OpenNetworkShape.arity (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                  (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))\n              (@Holant.OpenNetworkShape.free (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                  (@Counting.Bridge.OpenNetwork.disjoint R m n N M))))\n            (@Holant.OpenNetworkShape.boundary (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n              (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                (@Counting.Bridge.OpenNetwork.disjoint R m n N M))))\n          a b)\n      (@Counting.Bridge.OpenNetwork.toTensorInstance R inst\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n        (@Counting.Bridge.OpenNetwork.disjoint R m n N M))\n      x)\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0}\n        (Sum.{0, 0}\n          (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N)))\n            (Fin (@Holant.OpenNetworkShape.edges m (@Holant.OpenNetwork.shape.{0} R m N))))\n          (Fin m))\n        (Sum.{0, 0}\n          (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M)))\n            (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n M))))\n          (Fin n)))\n      (Fin (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n))\n      (Sum.{0, 0} (Sum.{0, 0} (Fin m) (@Counting.Bridge.OpenNetwork.Hidden R m N))\n        (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n M)))\n      (@Counting.Bridge.OpenNetwork.sumLanguage Bool R\n        (Sum.{0, 0}\n          (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N)))\n            (Fin (@Holant.OpenNetworkShape.edges m (@Holant.OpenNetwork.shape.{0} R m N))))\n          (Fin m))\n        (Sum.{0, 0}\n          (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M)))\n            (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n M))))\n          (Fin n))\n        (@Counting.Bridge.OpenNetwork.tensorLanguage R inst m N)\n        (@Counting.Bridge.OpenNetwork.tensorLanguage R inst n M))\n      inst Bool.fintype\n      (@instFintypeSum.{0, 0} (Sum.{0, 0} (Fin m) (@Counting.Bridge.OpenNetwork.Hidden R m N))\n        (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n M))\n        (@instFintypeSum.{0, 0} (Fin m) (@Counting.Bridge.OpenNetwork.Hidden R m N) (Fin.fintype m)\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden (Fin m)\n            (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N))\n              (@Holant.OpenNetworkShape.arity m (@Holant.OpenNetwork.shape.{0} R m N))\n              (@Holant.OpenNetworkShape.free m (@Holant.OpenNetwork.shape.{0} R m N)))\n            (@instFintypeSum.{0, 0}\n              (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N)))\n                fun (v : Fin (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N))) =>\n                Fin (@Holant.OpenNetworkShape.arity m (@Holant.OpenNetwork.shape.{0} R m N) v))\n              (Fin (@Holant.OpenNetworkShape.free m (@Holant.OpenNetwork.shape.{0} R m N)))\n              (@Sigma.instFintype.{0, 0}\n                (Fin (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N)))\n                (fun (v : Fin (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N))) =>\n                  Fin (@Holant.OpenNetworkShape.arity m (@Holant.OpenNetwork.shape.{0} R m N) v))\n                (fun (i : Fin (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N))) =>\n                  Fin.fintype (@Holant.OpenNetworkShape.arity m (@Holant.OpenNetwork.shape.{0} R m N) i))\n                (Fin.fintype (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N))))\n              (Fin.fintype (@Holant.OpenNetworkShape.free m (@Holant.OpenNetwork.shape.{0} R m N))))\n            (@Holant.OpenNetworkShape.boundary m (@Holant.OpenNetwork.shape.{0} R m N))))\n        (@instFintypeSum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n M) (Fin.fintype n)\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden (Fin n)\n            (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M))\n              (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n M))\n              (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n M)))\n            (@instFintypeSum.{0, 0}\n              (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M)))\n                fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M))) =>\n                Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n M) v))\n              (Fin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n M)))\n              (@Sigma.instFintype.{0, 0}\n                (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M)))\n                (fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M))) =>\n                  Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n M) v))\n                (fun (i : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M))) =>\n                  Fin.fintype (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n M) i))\n                (Fin.fintype (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M))))\n              (Fin.fintype (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n M))))\n            (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n M)))))\n      (fun\n          (a b :\n            Sum.{0, 0} (Sum.{0, 0} (Fin m) (@Counting.Bridge.OpenNetwork.Hidden R m N))\n              (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n M))) =>\n        @instDecidableEqSum.{0, 0} (Sum.{0, 0} (Fin m) (@Counting.Bridge.OpenNetwork.Hidden R m N))\n          (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n M))\n          (fun (a b : Sum.{0, 0} (Fin m) (@Counting.Bridge.OpenNetwork.Hidden R m N)) =>\n            @instDecidableEqSum.{0, 0} (Fin m) (@Counting.Bridge.OpenNetwork.Hidden R m N) (instDecidableEqFin m)\n              (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden (Fin m)\n                (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N))\n                  (@Holant.OpenNetworkShape.arity m (@Holant.OpenNetwork.shape.{0} R m N))\n                  (@Holant.OpenNetworkShape.free m (@Holant.OpenNetwork.shape.{0} R m N)))\n                (@Holant.OpenNetworkShape.boundary m (@Holant.OpenNetwork.shape.{0} R m N)))\n              a b)\n          (fun (a b : Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n M)) =>\n            @instDecidableEqSum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n M) (instDecidableEqFin n)\n              (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden (Fin n)\n                (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M))\n                  (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n M))\n                  (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n M)))\n                (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n M)))\n              a b)\n          a b)\n      (@Counting.Bridge.OpenNetwork.disjointTensorInstance R m n inst N M) x)"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.partition_disjoint_commutes","family":"open","import":"Counting.Bridge.OpenNetwork.Composition","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Composition","name":"Counting.Bridge.OpenNetwork.partition_disjoint_commutes","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : Type} {m n : Nat} [inst : CommSemiring R] (N : Holant.OpenNetwork R m) (M : Holant.OpenNetwork R n)\n  (x : Fin (instHAdd.hAdd m n) → Bool),\n  Eq ((Counting.Bridge.OpenNetwork.toOpenInstance (Counting.Bridge.OpenNetwork.disjoint N M)).partition x)\n    ((Counting.Bridge.OpenNetwork.disjointInstance N M).partition x)","role":"public","source_line":122,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Composition.lean","source_sha256":"3b66dccbde2b6518dfa3d021eb00b9306cbbfeaf0d97405c2b32cf0c5e365fd5","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Composition.lean#L122","type":"∀ {R : Type} {m n : Nat} [inst : CommSemiring.{0} R] (N : Holant.OpenNetwork.{0} R m) (M : Holant.OpenNetwork.{0} R n)\n  (x : Fin (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n) → Bool),\n  @Eq.{1} R\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0}\n        (Fin\n          (@Holant.OpenNetworkShape.vertices (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n            (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n              (@Counting.Bridge.OpenNetwork.disjoint R m n N M))))\n        (Fin\n          (@Holant.OpenNetworkShape.edges (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n            (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n              (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))))\n      (Fin (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n))\n      (@Counting.Bridge.OpenNetwork.Hidden R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n        (@Counting.Bridge.OpenNetwork.disjoint R m n N M))\n      (@Counting.Bridge.OpenNetwork.language R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n        inst (@Counting.Bridge.OpenNetwork.disjoint R m n N M))\n      inst Bool.fintype\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n        (Fin (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n))\n        (Holant.OpenPorts\n          (@Holant.OpenNetworkShape.vertices (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n            (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n              (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))\n          (@Holant.OpenNetworkShape.arity (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n            (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n              (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))\n          (@Holant.OpenNetworkShape.free (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n            (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n              (@Counting.Bridge.OpenNetwork.disjoint R m n N M))))\n        (@instFintypeSum.{0, 0}\n          (@Sigma.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                  (@Counting.Bridge.OpenNetwork.disjoint R m n N M))))\n            fun\n              (v :\n                Fin\n                  (@Holant.OpenNetworkShape.vertices\n                    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                    (@Holant.OpenNetwork.shape.{0} R\n                      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                      (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))) =>\n            Fin\n              (@Holant.OpenNetworkShape.arity (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                  (@Counting.Bridge.OpenNetwork.disjoint R m n N M))\n                v))\n          (Fin\n            (@Holant.OpenNetworkShape.free (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n              (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                (@Counting.Bridge.OpenNetwork.disjoint R m n N M))))\n          (@Sigma.instFintype.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                  (@Counting.Bridge.OpenNetwork.disjoint R m n N M))))\n            (fun\n                (v :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices\n                      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                      (@Holant.OpenNetwork.shape.{0} R\n                        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                        (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))) =>\n              Fin\n                (@Holant.OpenNetworkShape.arity (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                  (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                    (@Counting.Bridge.OpenNetwork.disjoint R m n N M))\n                  v))\n            (fun\n                (i :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices\n                      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                      (@Holant.OpenNetwork.shape.{0} R\n                        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                        (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))) =>\n              Fin.fintype\n                (@Holant.OpenNetworkShape.arity (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                  (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                    (@Counting.Bridge.OpenNetwork.disjoint R m n N M))\n                  i))\n            (Fin.fintype\n              (@Holant.OpenNetworkShape.vertices (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                  (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))))\n          (Fin.fintype\n            (@Holant.OpenNetworkShape.free (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n              (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n                (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))))\n        (@Holant.OpenNetworkShape.boundary (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n          (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n            (@Counting.Bridge.OpenNetwork.disjoint R m n N M))))\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n        (Fin (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n))\n        (Holant.OpenPorts\n          (@Holant.OpenNetworkShape.vertices (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n            (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n              (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))\n          (@Holant.OpenNetworkShape.arity (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n            (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n              (@Counting.Bridge.OpenNetwork.disjoint R m n N M)))\n          (@Holant.OpenNetworkShape.free (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n            (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n              (@Counting.Bridge.OpenNetwork.disjoint R m n N M))))\n        (@Holant.OpenNetworkShape.boundary (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n          (@Holant.OpenNetwork.shape.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n            (@Counting.Bridge.OpenNetwork.disjoint R m n N M))))\n      (@Counting.Bridge.OpenNetwork.toOpenInstance R\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n) inst\n        (@Counting.Bridge.OpenNetwork.disjoint R m n N M))\n      x)\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0}\n        (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N)))\n          (Fin (@Holant.OpenNetworkShape.edges m (@Holant.OpenNetwork.shape.{0} R m N))))\n        (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M)))\n          (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n M)))))\n      (Fin (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n))\n      (Sum.{0, 0} (@Counting.Bridge.OpenNetwork.Hidden R m N) (@Counting.Bridge.OpenNetwork.Hidden R n M))\n      (@Counting.Bridge.OpenNetwork.sumLanguage Bool R\n        (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N)))\n          (Fin (@Holant.OpenNetworkShape.edges m (@Holant.OpenNetwork.shape.{0} R m N))))\n        (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M)))\n          (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n M))))\n        (@Counting.Bridge.OpenNetwork.language R m inst N) (@Counting.Bridge.OpenNetwork.language R n inst M))\n      inst Bool.fintype\n      (@instFintypeSum.{0, 0} (@Counting.Bridge.OpenNetwork.Hidden R m N) (@Counting.Bridge.OpenNetwork.Hidden R n M)\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden (Fin m)\n          (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N))\n            (@Holant.OpenNetworkShape.arity m (@Holant.OpenNetwork.shape.{0} R m N))\n            (@Holant.OpenNetworkShape.free m (@Holant.OpenNetwork.shape.{0} R m N)))\n          (@instFintypeSum.{0, 0}\n            (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N)))\n              fun (v : Fin (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N))) =>\n              Fin (@Holant.OpenNetworkShape.arity m (@Holant.OpenNetwork.shape.{0} R m N) v))\n            (Fin (@Holant.OpenNetworkShape.free m (@Holant.OpenNetwork.shape.{0} R m N)))\n            (@Sigma.instFintype.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N)))\n              (fun (v : Fin (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N))) =>\n                Fin (@Holant.OpenNetworkShape.arity m (@Holant.OpenNetwork.shape.{0} R m N) v))\n              (fun (i : Fin (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N))) =>\n                Fin.fintype (@Holant.OpenNetworkShape.arity m (@Holant.OpenNetwork.shape.{0} R m N) i))\n              (Fin.fintype (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N))))\n            (Fin.fintype (@Holant.OpenNetworkShape.free m (@Holant.OpenNetwork.shape.{0} R m N))))\n          (@Holant.OpenNetworkShape.boundary m (@Holant.OpenNetwork.shape.{0} R m N)))\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden (Fin n)\n          (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M))\n            (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n M))\n            (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n M)))\n          (@instFintypeSum.{0, 0}\n            (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M)))\n              fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M))) =>\n              Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n M) v))\n            (Fin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n M)))\n            (@Sigma.instFintype.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M)))\n              (fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M))) =>\n                Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n M) v))\n              (fun (i : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M))) =>\n                Fin.fintype (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n M) i))\n              (Fin.fintype (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M))))\n            (Fin.fintype (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n M))))\n          (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n M))))\n      (fun (a b : Sum.{0, 0} (@Counting.Bridge.OpenNetwork.Hidden R m N) (@Counting.Bridge.OpenNetwork.Hidden R n M)) =>\n        @instDecidableEqSum.{0, 0} (@Counting.Bridge.OpenNetwork.Hidden R m N)\n          (@Counting.Bridge.OpenNetwork.Hidden R n M)\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden (Fin m)\n            (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices m (@Holant.OpenNetwork.shape.{0} R m N))\n              (@Holant.OpenNetworkShape.arity m (@Holant.OpenNetwork.shape.{0} R m N))\n              (@Holant.OpenNetworkShape.free m (@Holant.OpenNetwork.shape.{0} R m N)))\n            (@Holant.OpenNetworkShape.boundary m (@Holant.OpenNetwork.shape.{0} R m N)))\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden (Fin n)\n            (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n M))\n              (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n M))\n              (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n M)))\n            (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n M)))\n          a b)\n      (@Counting.Bridge.OpenNetwork.disjointInstance R m n inst N M) x)"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.partition_ordinary_raw","family":"open","import":"Counting.Bridge.OpenNetwork.Ordinary","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Ordinary","name":"Counting.Bridge.OpenNetwork.partition_ordinary_raw","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : Type} {n : Nat} [inst : CommSemiring R] (N : Holant.OpenNetwork R n)\n  (h : ∀ (j : Fin n), Exists fun p => Eq (Function.instFunLikeEmbedding.coe N.shape.boundary j) (Sum.inl p))\n  (x : Fin n → Bool),\n  Eq ((Counting.Bridge.OpenNetwork.toOpenInstance N).partition x)\n    ((Counting.Bridge.Holant.toOpenInstance (Counting.Bridge.OpenNetwork.ordinaryNetwork N h)).partition x)","role":"public","source_line":50,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Ordinary.lean","source_sha256":"36421c1bd69e395e772ac4fba9514d3eaff5d02cc748ce3fbc6532cd7636d97c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Ordinary.lean#L50","type":"∀ {R : Type} {n : Nat} [inst : CommSemiring.{0} R] (N : Holant.OpenNetwork.{0} R n)\n  (h :\n    ∀ (j : Fin n),\n      @Exists.{1}\n        (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n          fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n          Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n        fun\n          (p :\n            @Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n              Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v)) =>\n        @Eq.{1}\n          (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n            (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n            (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (@DFunLike.coe.{1, 1, 1}\n            (Function.Embedding.{1, 1} (Fin n)\n              (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (Fin n)\n            (fun (x : Fin n) =>\n              Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (@Function.instFunLikeEmbedding.{1, 1} (Fin n)\n              (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N)) j)\n          (@Sum.inl.{0, 0}\n            (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n              Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n            (Fin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))) p))\n  (x : Fin n → Bool),\n  @Eq.{1} R\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n        (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n      (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N) (@Counting.Bridge.OpenNetwork.language R n inst N) inst\n      Bool.fintype\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden (Fin n)\n        (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n          (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n          (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n        (@instFintypeSum.{0, 0}\n          (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n            fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n            Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n          (Fin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (@Sigma.instFintype.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n              Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n            (fun (i : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n              Fin.fintype (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) i))\n            (Fin.fintype (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))))\n          (Fin.fintype (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n        (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N)))\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden (Fin n)\n        (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n          (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n          (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n        (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N)))\n      (@Counting.Bridge.OpenNetwork.toOpenInstance R n inst N) x)\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.vertices (Fin n)\n            (@Counting.Model.KernelNetwork.shape Bool R (Fin n)\n              (@Counting.Bridge.Holant.adapt R n (@Counting.Bridge.OpenNetwork.ordinaryNetwork R n inst N h)))))\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges (Fin n)\n            (@Counting.Model.KernelNetwork.shape Bool R (Fin n)\n              (@Counting.Bridge.Holant.adapt R n (@Counting.Bridge.OpenNetwork.ordinaryNetwork R n inst N h))))))\n      (Fin n)\n      (Prod.{0, 0}\n        (Fin\n          (@Holant.NetworkShape.edges n\n            (@Holant.Network.shape.{0} R n (@Counting.Bridge.OpenNetwork.ordinaryNetwork R n inst N h))))\n        Bool)\n      (@Counting.Model.KernelNetwork.language Bool R (Fin n)\n        (@Counting.Bridge.Holant.adapt R n (@Counting.Bridge.OpenNetwork.ordinaryNetwork R n inst N h)))\n      inst Bool.fintype\n      (@instFintypeProd.{0, 0}\n        (Fin\n          (@Holant.NetworkShape.edges n\n            (@Holant.Network.shape.{0} R n (@Counting.Bridge.OpenNetwork.ordinaryNetwork R n inst N h))))\n        Bool\n        (Fin.fintype\n          (@Holant.NetworkShape.edges n\n            (@Holant.Network.shape.{0} R n (@Counting.Bridge.OpenNetwork.ordinaryNetwork R n inst N h))))\n        Bool.fintype)\n      (fun\n          (a b :\n            Prod.{0, 0}\n              (Fin\n                (@Holant.NetworkShape.edges n\n                  (@Holant.Network.shape.{0} R n (@Counting.Bridge.OpenNetwork.ordinaryNetwork R n inst N h))))\n              Bool) =>\n        @instDecidableEqProd.{0, 0}\n          (Fin\n            (@Holant.NetworkShape.edges n\n              (@Holant.Network.shape.{0} R n (@Counting.Bridge.OpenNetwork.ordinaryNetwork R n inst N h))))\n          Bool\n          (instDecidableEqFin\n            (@Holant.NetworkShape.edges n\n              (@Holant.Network.shape.{0} R n (@Counting.Bridge.OpenNetwork.ordinaryNetwork R n inst N h))))\n          instDecidableEqBool a b)\n      (@Counting.Bridge.Holant.toOpenInstance R n (@Counting.Bridge.OpenNetwork.ordinaryNetwork R n inst N h)) x)"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.partition_ordinary_tensor","family":"open","import":"Counting.Bridge.OpenNetwork.Ordinary","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Ordinary","name":"Counting.Bridge.OpenNetwork.partition_ordinary_tensor","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : Type} {n : Nat} [inst : CommSemiring R] (N : Holant.OpenNetwork R n)\n  (h : ∀ (j : Fin n), Exists fun p => Eq (Function.instFunLikeEmbedding.coe N.shape.boundary j) (Sum.inl p))\n  (x : Fin n → Bool),\n  Eq ((Counting.Bridge.OpenNetwork.toTensorInstance N).partition x)\n    ((Counting.Bridge.Holant.toOpenInstance (Counting.Bridge.OpenNetwork.ordinaryNetwork N h)).partition x)","role":"public","source_line":42,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Ordinary.lean","source_sha256":"36421c1bd69e395e772ac4fba9514d3eaff5d02cc748ce3fbc6532cd7636d97c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Ordinary.lean#L42","type":"∀ {R : Type} {n : Nat} [inst : CommSemiring.{0} R] (N : Holant.OpenNetwork.{0} R n)\n  (h :\n    ∀ (j : Fin n),\n      @Exists.{1}\n        (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n          fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n          Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n        fun\n          (p :\n            @Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n              Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v)) =>\n        @Eq.{1}\n          (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n            (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n            (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (@DFunLike.coe.{1, 1, 1}\n            (Function.Embedding.{1, 1} (Fin n)\n              (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (Fin n)\n            (fun (x : Fin n) =>\n              Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (@Function.instFunLikeEmbedding.{1, 1} (Fin n)\n              (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N)) j)\n          (@Sum.inl.{0, 0}\n            (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n              Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n            (Fin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))) p))\n  (x : Fin n → Bool),\n  @Eq.{1} R\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0}\n        (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n        (Fin n))\n      (Fin n) (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N))\n      (@Counting.Bridge.OpenNetwork.tensorLanguage R inst n N) inst Bool.fintype\n      (@instFintypeSum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N) (Fin.fintype n)\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden (Fin n)\n          (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n            (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n            (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (@instFintypeSum.{0, 0}\n            (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n              Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n            (Fin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (@Sigma.instFintype.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              (fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n                Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n              (fun (i : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n                Fin.fintype (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) i))\n              (Fin.fintype (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (Fin.fintype (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n          (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N))))\n      (fun (a b : Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N)) =>\n        @instDecidableEqSum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N) (instDecidableEqFin n)\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden (Fin n)\n            (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n              (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n              (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N)))\n          a b)\n      (@Counting.Bridge.OpenNetwork.toTensorInstance R inst n N) x)\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.vertices (Fin n)\n            (@Counting.Model.KernelNetwork.shape Bool R (Fin n)\n              (@Counting.Bridge.Holant.adapt R n (@Counting.Bridge.OpenNetwork.ordinaryNetwork R n inst N h)))))\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges (Fin n)\n            (@Counting.Model.KernelNetwork.shape Bool R (Fin n)\n              (@Counting.Bridge.Holant.adapt R n (@Counting.Bridge.OpenNetwork.ordinaryNetwork R n inst N h))))))\n      (Fin n)\n      (Prod.{0, 0}\n        (Fin\n          (@Holant.NetworkShape.edges n\n            (@Holant.Network.shape.{0} R n (@Counting.Bridge.OpenNetwork.ordinaryNetwork R n inst N h))))\n        Bool)\n      (@Counting.Model.KernelNetwork.language Bool R (Fin n)\n        (@Counting.Bridge.Holant.adapt R n (@Counting.Bridge.OpenNetwork.ordinaryNetwork R n inst N h)))\n      inst Bool.fintype\n      (@instFintypeProd.{0, 0}\n        (Fin\n          (@Holant.NetworkShape.edges n\n            (@Holant.Network.shape.{0} R n (@Counting.Bridge.OpenNetwork.ordinaryNetwork R n inst N h))))\n        Bool\n        (Fin.fintype\n          (@Holant.NetworkShape.edges n\n            (@Holant.Network.shape.{0} R n (@Counting.Bridge.OpenNetwork.ordinaryNetwork R n inst N h))))\n        Bool.fintype)\n      (fun\n          (a b :\n            Prod.{0, 0}\n              (Fin\n                (@Holant.NetworkShape.edges n\n                  (@Holant.Network.shape.{0} R n (@Counting.Bridge.OpenNetwork.ordinaryNetwork R n inst N h))))\n              Bool) =>\n        @instDecidableEqProd.{0, 0}\n          (Fin\n            (@Holant.NetworkShape.edges n\n              (@Holant.Network.shape.{0} R n (@Counting.Bridge.OpenNetwork.ordinaryNetwork R n inst N h))))\n          Bool\n          (instDecidableEqFin\n            (@Holant.NetworkShape.edges n\n              (@Holant.Network.shape.{0} R n (@Counting.Bridge.OpenNetwork.ordinaryNetwork R n inst N h))))\n          instDecidableEqBool a b)\n      (@Counting.Bridge.Holant.toOpenInstance R n (@Counting.Bridge.OpenNetwork.ordinaryNetwork R n inst N h)) x)"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.partition_reorder_commutes","family":"open","import":"Counting.Bridge.OpenNetwork.Composition","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Composition","name":"Counting.Bridge.OpenNetwork.partition_reorder_commutes","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : Type} {n : Nat} [inst : CommSemiring R] (N : Holant.OpenNetwork R n) (p : Equiv.Perm (Fin n)) (x : Fin n → Bool),\n  Eq ((Counting.Bridge.OpenNetwork.toOpenInstance (Holant.Dihedral.CompatibleClosure.reorderOpen N p)).partition x)\n    (((Counting.Bridge.OpenNetwork.toOpenInstance N).renameBoundary (EquivLike.toFunLike.coe (Equiv.symm p))).partition\n      x)","role":"public","source_line":162,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Composition.lean","source_sha256":"3b66dccbde2b6518dfa3d021eb00b9306cbbfeaf0d97405c2b32cf0c5e365fd5","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Composition.lean#L162","type":"∀ {R : Type} {n : Nat} [inst : CommSemiring.{0} R] (N : Holant.OpenNetwork.{0} R n) (p : Equiv.Perm.{1} (Fin n))\n  (x : Fin n → Bool),\n  @Eq.{1} R\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0}\n        (Fin\n          (@Holant.OpenNetworkShape.vertices n\n            (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))))\n        (Fin\n          (@Holant.OpenNetworkShape.edges n\n            (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))))\n      (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))\n      (@Counting.Bridge.OpenNetwork.language R n inst (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)) inst\n      Bool.fintype\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden (Fin n)\n        (Holant.OpenPorts\n          (@Holant.OpenNetworkShape.vertices n\n            (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))\n          (@Holant.OpenNetworkShape.arity n\n            (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))\n          (@Holant.OpenNetworkShape.free n\n            (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))))\n        (@instFintypeSum.{0, 0}\n          (@Sigma.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices n\n                (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))))\n            fun\n              (v :\n                Fin\n                  (@Holant.OpenNetworkShape.vertices n\n                    (@Holant.OpenNetwork.shape.{0} R n\n                      (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))) =>\n            Fin\n              (@Holant.OpenNetworkShape.arity n\n                (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)) v))\n          (Fin\n            (@Holant.OpenNetworkShape.free n\n              (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))))\n          (@Sigma.instFintype.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices n\n                (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))))\n            (fun\n                (v :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices n\n                      (@Holant.OpenNetwork.shape.{0} R n\n                        (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))) =>\n              Fin\n                (@Holant.OpenNetworkShape.arity n\n                  (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)) v))\n            (fun\n                (i :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices n\n                      (@Holant.OpenNetwork.shape.{0} R n\n                        (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))) =>\n              Fin.fintype\n                (@Holant.OpenNetworkShape.arity n\n                  (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)) i))\n            (Fin.fintype\n              (@Holant.OpenNetworkShape.vertices n\n                (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))))\n          (Fin.fintype\n            (@Holant.OpenNetworkShape.free n\n              (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))))\n        (@Holant.OpenNetworkShape.boundary n\n          (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))))\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden (Fin n)\n        (Holant.OpenPorts\n          (@Holant.OpenNetworkShape.vertices n\n            (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))\n          (@Holant.OpenNetworkShape.arity n\n            (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))\n          (@Holant.OpenNetworkShape.free n\n            (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))))\n        (@Holant.OpenNetworkShape.boundary n\n          (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))))\n      (@Counting.Bridge.OpenNetwork.toOpenInstance R n inst\n        (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))\n      x)\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n        (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n      (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N) (@Counting.Bridge.OpenNetwork.language R n inst N) inst\n      Bool.fintype\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden (Fin n)\n        (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n          (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n          (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n        (@instFintypeSum.{0, 0}\n          (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n            fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n            Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n          (Fin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (@Sigma.instFintype.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n              Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n            (fun (i : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n              Fin.fintype (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) i))\n            (Fin.fintype (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))))\n          (Fin.fintype (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n        (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N)))\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden (Fin n)\n        (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n          (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n          (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n        (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N)))\n      (@Counting.Model.OpenInstance.renameBoundary Bool R\n        (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n        (Fin n) (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N) (@Counting.Bridge.OpenNetwork.language R n inst N)\n        (@Counting.Bridge.OpenNetwork.toOpenInstance R n inst N)\n        (@DFunLike.coe.{1, 1, 1} (Equiv.{1, 1} (Fin n) (Fin n)) (Fin n) (fun (x : Fin n) => Fin n)\n          (@EquivLike.toFunLike.{1, 1, 1} (Equiv.{1, 1} (Fin n) (Fin n)) (Fin n) (Fin n)\n            (@Equiv.instEquivLike.{1, 1} (Fin n) (Fin n)))\n          (@Equiv.symm.{1, 1} (Fin n) (Fin n) p)))\n      x)"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.partition_tensor_eq_raw_closed","family":"open","import":"Counting.Bridge.OpenNetwork.Corrected","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Corrected","name":"Counting.Bridge.OpenNetwork.partition_tensor_eq_raw_closed","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : Type} [inst : CommSemiring R] (N : Holant.OpenNetwork R 0) (x : Fin 0 → Bool),\n  Eq ((Counting.Bridge.OpenNetwork.toTensorInstance N).partition x)\n    ((Counting.Bridge.OpenNetwork.toOpenInstance N).partition x)","role":"public","source_line":87,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Corrected.lean","source_sha256":"aba50979661d1b4555a2877732cf61964156b67028c4885ea6a0aa64e70b5b40","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Corrected.lean#L87","type":"∀ {R : Type} [inst : CommSemiring.{0} R]\n  (N : Holant.OpenNetwork.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n  (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) → Bool),\n  @Eq.{1} R\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0}\n        (Sum.{0, 0}\n          (Fin\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n          (Fin\n            (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n      (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n        (@Counting.Bridge.OpenNetwork.Hidden R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n      (@Counting.Bridge.OpenNetwork.tensorLanguage R inst (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n        N)\n      inst Bool.fintype\n      (@instFintypeSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n        (@Counting.Bridge.OpenNetwork.Hidden R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n        (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n          (Holant.OpenPorts\n            (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n            (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n          (@instFintypeSum.{0, 0}\n            (@Sigma.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n              fun\n                (v :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        N))) =>\n              Fin\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N) v))\n            (Fin\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n            (@Sigma.instFintype.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n              (fun\n                  (v :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          N))) =>\n                Fin\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                    v))\n              (fun\n                  (i :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          N))) =>\n                Fin.fintype\n                  (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n                    i))\n              (Fin.fintype\n                (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n            (Fin.fintype\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n          (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n      (fun\n          (a b :\n            Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Bridge.OpenNetwork.Hidden R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                N)) =>\n        @instDecidableEqSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n          (@Counting.Bridge.OpenNetwork.Hidden R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n          (instDecidableEqFin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (Holant.OpenPorts\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n              (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n              (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n            (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n          a b)\n      (@Counting.Bridge.OpenNetwork.toTensorInstance R inst\n        (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n      x)\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0}\n        (Fin\n          (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n        (Fin\n          (@Holant.OpenNetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n      (@Counting.Bridge.OpenNetwork.Hidden R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)\n      (@Counting.Bridge.OpenNetwork.language R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) inst N)\n      inst Bool.fintype\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n        (Holant.OpenPorts\n          (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n          (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n          (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n        (@instFintypeSum.{0, 0}\n          (@Sigma.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n            fun\n              (v :\n                Fin\n                  (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      N))) =>\n            Fin\n              (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N) v))\n          (Fin\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n          (@Sigma.instFintype.{0, 0}\n            (Fin\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n            (fun\n                (v :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        N))) =>\n              Fin\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N) v))\n            (fun\n                (i :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        N))) =>\n              Fin.fintype\n                (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N) i))\n            (Fin.fintype\n              (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n          (Fin.fintype\n            (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))))\n        (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n        (Holant.OpenPorts\n          (@Holant.OpenNetworkShape.vertices (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n          (@Holant.OpenNetworkShape.arity (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N))\n          (@Holant.OpenNetworkShape.free (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n        (@Holant.OpenNetworkShape.boundary (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n          (@Holant.OpenNetwork.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) N)))\n      (@Counting.Bridge.OpenNetwork.toOpenInstance R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) inst\n        N)\n      x)"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.partition_tensor_eq_raw_of_ordinary","family":"open","import":"Counting.Bridge.OpenNetwork.Corrected","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Corrected","name":"Counting.Bridge.OpenNetwork.partition_tensor_eq_raw_of_ordinary","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : Type} [inst : CommSemiring R] {n : Nat} (N : Holant.OpenNetwork R n),\n  (∀ (j : Fin n), Exists fun p => Eq (Function.instFunLikeEmbedding.coe N.shape.boundary j) (Sum.inl p)) →\n    ∀ (x : Fin n → Bool),\n      Eq ((Counting.Bridge.OpenNetwork.toTensorInstance N).partition x)\n        ((Counting.Bridge.OpenNetwork.toOpenInstance N).partition x)","role":"public","source_line":80,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Corrected.lean","source_sha256":"aba50979661d1b4555a2877732cf61964156b67028c4885ea6a0aa64e70b5b40","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Corrected.lean#L80","type":"∀ {R : Type} [inst : CommSemiring.{0} R] {n : Nat} (N : Holant.OpenNetwork.{0} R n)\n  (h :\n    ∀ (j : Fin n),\n      @Exists.{1}\n        (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n          fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n          Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n        fun\n          (p :\n            @Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n              Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v)) =>\n        @Eq.{1}\n          (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n            (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n            (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (@DFunLike.coe.{1, 1, 1}\n            (Function.Embedding.{1, 1} (Fin n)\n              (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (Fin n)\n            (fun (x : Fin n) =>\n              Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (@Function.instFunLikeEmbedding.{1, 1} (Fin n)\n              (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n                (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N)) j)\n          (@Sum.inl.{0, 0}\n            (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n              Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n            (Fin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))) p))\n  (x : Fin n → Bool),\n  @Eq.{1} R\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0}\n        (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n        (Fin n))\n      (Fin n) (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N))\n      (@Counting.Bridge.OpenNetwork.tensorLanguage R inst n N) inst Bool.fintype\n      (@instFintypeSum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N) (Fin.fintype n)\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden (Fin n)\n          (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n            (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n            (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (@instFintypeSum.{0, 0}\n            (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n              Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n            (Fin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (@Sigma.instFintype.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              (fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n                Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n              (fun (i : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n                Fin.fintype (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) i))\n              (Fin.fintype (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (Fin.fintype (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n          (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N))))\n      (fun (a b : Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N)) =>\n        @instDecidableEqSum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N) (instDecidableEqFin n)\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden (Fin n)\n            (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n              (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n              (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N)))\n          a b)\n      (@Counting.Bridge.OpenNetwork.toTensorInstance R inst n N) x)\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n        (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n      (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N) (@Counting.Bridge.OpenNetwork.language R n inst N) inst\n      Bool.fintype\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden (Fin n)\n        (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n          (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n          (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n        (@instFintypeSum.{0, 0}\n          (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n            fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n            Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n          (Fin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (@Sigma.instFintype.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n              Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n            (fun (i : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n              Fin.fintype (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) i))\n            (Fin.fintype (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))))\n          (Fin.fintype (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n        (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N)))\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden (Fin n)\n        (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n          (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n          (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n        (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N)))\n      (@Counting.Bridge.OpenNetwork.toOpenInstance R n inst N) x)"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.partition_tensor_reorder_commutes","family":"open","import":"Counting.Bridge.OpenNetwork.Composition","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Composition","name":"Counting.Bridge.OpenNetwork.partition_tensor_reorder_commutes","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : Type} {n : Nat} [inst : CommSemiring R] (N : Holant.OpenNetwork R n) (p : Equiv.Perm (Fin n)) (x : Fin n → Bool),\n  Eq ((Counting.Bridge.OpenNetwork.toTensorInstance (Holant.Dihedral.CompatibleClosure.reorderOpen N p)).partition x)\n    (((Counting.Bridge.OpenNetwork.toTensorInstance N).renameBoundary\n          (EquivLike.toFunLike.coe (Equiv.symm p))).partition\n      x)","role":"public","source_line":171,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Composition.lean","source_sha256":"3b66dccbde2b6518dfa3d021eb00b9306cbbfeaf0d97405c2b32cf0c5e365fd5","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Composition.lean#L171","type":"∀ {R : Type} {n : Nat} [inst : CommSemiring.{0} R] (N : Holant.OpenNetwork.{0} R n) (p : Equiv.Perm.{1} (Fin n))\n  (x : Fin n → Bool),\n  @Eq.{1} R\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0}\n        (Sum.{0, 0}\n          (Fin\n            (@Holant.OpenNetworkShape.vertices n\n              (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))))\n          (Fin\n            (@Holant.OpenNetworkShape.edges n\n              (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))))\n        (Fin n))\n      (Fin n)\n      (Sum.{0, 0} (Fin n)\n        (@Counting.Bridge.OpenNetwork.Hidden R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))\n      (@Counting.Bridge.OpenNetwork.tensorLanguage R inst n\n        (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))\n      inst Bool.fintype\n      (@instFintypeSum.{0, 0} (Fin n)\n        (@Counting.Bridge.OpenNetwork.Hidden R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))\n        (Fin.fintype n)\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden (Fin n)\n          (Holant.OpenPorts\n            (@Holant.OpenNetworkShape.vertices n\n              (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))\n            (@Holant.OpenNetworkShape.arity n\n              (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))\n            (@Holant.OpenNetworkShape.free n\n              (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))))\n          (@instFintypeSum.{0, 0}\n            (@Sigma.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices n\n                  (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))))\n              fun\n                (v :\n                  Fin\n                    (@Holant.OpenNetworkShape.vertices n\n                      (@Holant.OpenNetwork.shape.{0} R n\n                        (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))) =>\n              Fin\n                (@Holant.OpenNetworkShape.arity n\n                  (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)) v))\n            (Fin\n              (@Holant.OpenNetworkShape.free n\n                (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))))\n            (@Sigma.instFintype.{0, 0}\n              (Fin\n                (@Holant.OpenNetworkShape.vertices n\n                  (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))))\n              (fun\n                  (v :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices n\n                        (@Holant.OpenNetwork.shape.{0} R n\n                          (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))) =>\n                Fin\n                  (@Holant.OpenNetworkShape.arity n\n                    (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)) v))\n              (fun\n                  (i :\n                    Fin\n                      (@Holant.OpenNetworkShape.vertices n\n                        (@Holant.OpenNetwork.shape.{0} R n\n                          (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))) =>\n                Fin.fintype\n                  (@Holant.OpenNetworkShape.arity n\n                    (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)) i))\n              (Fin.fintype\n                (@Holant.OpenNetworkShape.vertices n\n                  (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))))\n            (Fin.fintype\n              (@Holant.OpenNetworkShape.free n\n                (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))))\n          (@Holant.OpenNetworkShape.boundary n\n            (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))))\n      (fun\n          (a b :\n            Sum.{0, 0} (Fin n)\n              (@Counting.Bridge.OpenNetwork.Hidden R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))) =>\n        @instDecidableEqSum.{0, 0} (Fin n)\n          (@Counting.Bridge.OpenNetwork.Hidden R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))\n          (instDecidableEqFin n)\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden (Fin n)\n            (Holant.OpenPorts\n              (@Holant.OpenNetworkShape.vertices n\n                (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))\n              (@Holant.OpenNetworkShape.arity n\n                (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p)))\n              (@Holant.OpenNetworkShape.free n\n                (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))))\n            (@Holant.OpenNetworkShape.boundary n\n              (@Holant.OpenNetwork.shape.{0} R n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))))\n          a b)\n      (@Counting.Bridge.OpenNetwork.toTensorInstance R inst n\n        (@Holant.Dihedral.CompatibleClosure.reorderOpen.{0} R n N p))\n      x)\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0}\n        (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n        (Fin n))\n      (Fin n) (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N))\n      (@Counting.Bridge.OpenNetwork.tensorLanguage R inst n N) inst Bool.fintype\n      (@instFintypeSum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N) (Fin.fintype n)\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden (Fin n)\n          (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n            (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n            (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (@instFintypeSum.{0, 0}\n            (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n              Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n            (Fin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (@Sigma.instFintype.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              (fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n                Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n              (fun (i : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n                Fin.fintype (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) i))\n              (Fin.fintype (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (Fin.fintype (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n          (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N))))\n      (fun (a b : Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N)) =>\n        @instDecidableEqSum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N) (instDecidableEqFin n)\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden (Fin n)\n            (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n              (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n              (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N)))\n          a b)\n      (@Counting.Model.OpenInstance.renameBoundary Bool R\n        (Sum.{0, 0}\n          (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n          (Fin n))\n        (Fin n) (Fin n) (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N))\n        (@Counting.Bridge.OpenNetwork.tensorLanguage R inst n N)\n        (@Counting.Bridge.OpenNetwork.toTensorInstance R inst n N)\n        (@DFunLike.coe.{1, 1, 1} (Equiv.{1, 1} (Fin n) (Fin n)) (Fin n) (fun (x : Fin n) => Fin n)\n          (@EquivLike.toFunLike.{1, 1, 1} (Equiv.{1, 1} (Fin n) (Fin n)) (Fin n) (Fin n)\n            (@Equiv.instEquivLike.{1, 1} (Fin n) (Fin n)))\n          (@Equiv.symm.{1, 1} (Fin n) (Fin n) p)))\n      x)"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.partition_toOpenInstance","family":"open","import":"Counting.Bridge.OpenNetwork","kind":"theorem","module":"Counting.Bridge.OpenNetwork","name":"Counting.Bridge.OpenNetwork.partition_toOpenInstance","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : Type} {n : Nat} [inst : CommSemiring R] (N : Holant.OpenNetwork R n) (x : Fin n → Bool),\n  Eq ((Counting.Bridge.OpenNetwork.toOpenInstance N).partition x) (N.raw x)","role":"public","source_line":90,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork.lean","source_sha256":"2f6daf7c045f0c454616fefcb738cd9b8cf47dc95f01f37633c4d6c960788e8f","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork.lean#L90","type":"∀ {R : Type} {n : Nat} [inst : CommSemiring.{0} R] (N : Holant.OpenNetwork.{0} R n) (x : Fin n → Bool),\n  @Eq.{1} R\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n        (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n      (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N) (@Counting.Bridge.OpenNetwork.language R n inst N) inst\n      Bool.fintype\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden (Fin n)\n        (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n          (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n          (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n        (@instFintypeSum.{0, 0}\n          (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n            fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n            Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n          (Fin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (@Sigma.instFintype.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n              Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n            (fun (i : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n              Fin.fintype (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) i))\n            (Fin.fintype (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))))\n          (Fin.fintype (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n        (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N)))\n      (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden (Fin n)\n        (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n          (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n          (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n        (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N)))\n      (@Counting.Bridge.OpenNetwork.toOpenInstance R n inst N) x)\n    (@Holant.OpenNetwork.raw.{0} R inst n N x)"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.partition_toTensorInstance","family":"open","import":"Counting.Bridge.OpenNetwork.Corrected","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Corrected","name":"Counting.Bridge.OpenNetwork.partition_toTensorInstance","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : Type} [inst : CommSemiring R] {n : Nat} (N : Holant.OpenNetwork R n) (x : Fin n → Bool),\n  Eq ((Counting.Bridge.OpenNetwork.toTensorInstance N).partition x) (N.tensor x)","role":"public","source_line":74,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Corrected.lean","source_sha256":"aba50979661d1b4555a2877732cf61964156b67028c4885ea6a0aa64e70b5b40","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Corrected.lean#L74","type":"∀ {R : Type} [inst : CommSemiring.{0} R] {n : Nat} (N : Holant.OpenNetwork.{0} R n) (x : Fin n → Bool),\n  @Eq.{1} R\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0}\n        (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n        (Fin n))\n      (Fin n) (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N))\n      (@Counting.Bridge.OpenNetwork.tensorLanguage R inst n N) inst Bool.fintype\n      (@instFintypeSum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N) (Fin.fintype n)\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden (Fin n)\n          (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n            (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n            (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (@instFintypeSum.{0, 0}\n            (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n              Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n            (Fin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (@Sigma.instFintype.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              (fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n                Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n              (fun (i : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n                Fin.fintype (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) i))\n              (Fin.fintype (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (Fin.fintype (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n          (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N))))\n      (fun (a b : Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N)) =>\n        @instDecidableEqSum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N) (instDecidableEqFin n)\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden (Fin n)\n            (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n              (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n              (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N)))\n          a b)\n      (@Counting.Bridge.OpenNetwork.toTensorInstance R inst n N) x)\n    (@Holant.OpenNetwork.tensor.{0} R inst n N x)"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.partition_toTensorInstance_action","family":"open","import":"Counting.Bridge.OpenNetwork.Corrected","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Corrected","name":"Counting.Bridge.OpenNetwork.partition_toTensorInstance_action","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : Type} [inst : CommSemiring R] {n : Nat} (N : Holant.OpenNetwork R n) (x : Fin n → Bool),\n  Eq ((Counting.Bridge.OpenNetwork.toTensorInstance N).partition x)\n    (Holant.Signature.coordinateAction N.boundaryKernel\n      (fun y => (Counting.Bridge.OpenNetwork.toOpenInstance N).partition y) x)","role":"public","source_line":64,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Corrected.lean","source_sha256":"aba50979661d1b4555a2877732cf61964156b67028c4885ea6a0aa64e70b5b40","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Corrected.lean#L64","type":"∀ {R : Type} [inst : CommSemiring.{0} R] {n : Nat} (N : Holant.OpenNetwork.{0} R n) (x : Fin n → Bool),\n  @Eq.{1} R\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0}\n        (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n        (Fin n))\n      (Fin n) (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N))\n      (@Counting.Bridge.OpenNetwork.tensorLanguage R inst n N) inst Bool.fintype\n      (@instFintypeSum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N) (Fin.fintype n)\n        (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden (Fin n)\n          (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n            (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n            (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (@instFintypeSum.{0, 0}\n            (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n              Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n            (Fin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (@Sigma.instFintype.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              (fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n                Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n              (fun (i : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n                Fin.fintype (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) i))\n              (Fin.fintype (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (Fin.fintype (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n          (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N))))\n      (fun (a b : Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N)) =>\n        @instDecidableEqSum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N) (instDecidableEqFin n)\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden (Fin n)\n            (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n              (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n              (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N)))\n          a b)\n      (@Counting.Bridge.OpenNetwork.toTensorInstance R inst n N) x)\n    (@Holant.Signature.coordinateAction.{0} R inst n (@Holant.OpenNetwork.boundaryKernel.{0} R inst n N)\n      (fun (y : Fin n → Bool) =>\n        @Counting.Model.OpenInstance.partition Bool R\n          (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n          (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N) (@Counting.Bridge.OpenNetwork.language R n inst N) inst\n          Bool.fintype\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instFintypeHidden (Fin n)\n            (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n              (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n              (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (@instFintypeSum.{0, 0}\n              (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n                fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n                Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n              (Fin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n              (@Sigma.instFintype.{0, 0}\n                (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n                (fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n                  Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) v))\n                (fun (i : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))) =>\n                  Fin.fintype (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N) i))\n                (Fin.fintype (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))))\n              (Fin.fintype (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (@Counting.Bridge.OpenNetwork.BoundaryComplement.instDecidableEqHidden (Fin n)\n            (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n              (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{0} R n N))\n              (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{0} R n N)))\n          (@Counting.Bridge.OpenNetwork.toOpenInstance R n inst N) y)\n      x)"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.raw_disjoint","family":"open","import":"Counting.Bridge.OpenNetwork.Composition","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Composition","name":"Counting.Bridge.OpenNetwork.raw_disjoint","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : Type} {m n : Nat} [inst : CommSemiring R] (N : Holant.OpenNetwork R m) (M : Holant.OpenNetwork R n),\n  Eq (Counting.Bridge.OpenNetwork.disjoint N M).raw (N.raw.tensor M.raw)","role":"public","source_line":73,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Composition.lean","source_sha256":"3b66dccbde2b6518dfa3d021eb00b9306cbbfeaf0d97405c2b32cf0c5e365fd5","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Composition.lean#L73","type":"∀ {R : Type} {m n : Nat} [inst : CommSemiring.{0} R] (N : Holant.OpenNetwork.{0} R m) (M : Holant.OpenNetwork.{0} R n),\n  @Eq.{1} (Holant.Signature.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n))\n    (@Holant.OpenNetwork.raw.{0} R inst (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n      (@Counting.Bridge.OpenNetwork.disjoint R m n N M))\n    (@Holant.Signature.tensor.{0} R m n\n      (@Distrib.toMul.{0} R (@instDistribOfSemiring.{0} R (@CommSemiring.toSemiring.{0} R inst)))\n      (@Holant.OpenNetwork.raw.{0} R inst m N) (@Holant.OpenNetwork.raw.{0} R inst n M))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.tensor_disjoint","family":"open","import":"Counting.Bridge.OpenNetwork.Composition","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Composition","name":"Counting.Bridge.OpenNetwork.tensor_disjoint","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : Type} {m n : Nat} [inst : CommSemiring R] (N : Holant.OpenNetwork R m) (M : Holant.OpenNetwork R n)\n  (W : Holant.EdgeKind),\n  (∀ (e : Fin N.shape.edges), Eq (N.edge e) W) →\n    (∀ (e : Fin M.shape.edges), Eq (M.edge e) W) →\n      Eq (Counting.Bridge.OpenNetwork.disjoint N M).tensor (N.tensor.tensor M.tensor)","role":"public","source_line":77,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Composition.lean","source_sha256":"3b66dccbde2b6518dfa3d021eb00b9306cbbfeaf0d97405c2b32cf0c5e365fd5","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Composition.lean#L77","type":"∀ {R : Type} {m n : Nat} [inst : CommSemiring.{0} R] (N : Holant.OpenNetwork.{0} R m) (M : Holant.OpenNetwork.{0} R n)\n  (W : Holant.EdgeKind)\n  (hN :\n    ∀ (e : Fin (@Holant.OpenNetworkShape.edges m (@Holant.OpenNetwork.shape.{0} R m N))),\n      @Eq.{1} Holant.EdgeKind (@Holant.OpenNetwork.edge.{0} R m N e) W)\n  (hM :\n    ∀ (e : Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n M))),\n      @Eq.{1} Holant.EdgeKind (@Holant.OpenNetwork.edge.{0} R n M e) W),\n  @Eq.{1} (Holant.Signature.{0} R (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n))\n    (@Holant.OpenNetwork.tensor.{0} R inst (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n)\n      (@Counting.Bridge.OpenNetwork.disjoint R m n N M))\n    (@Holant.Signature.tensor.{0} R m n\n      (@Distrib.toMul.{0} R (@instDistribOfSemiring.{0} R (@CommSemiring.toSemiring.{0} R inst)))\n      (@Holant.OpenNetwork.tensor.{0} R inst m N) (@Holant.OpenNetwork.tensor.{0} R inst n M))"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.tensor_occurrences_length","family":"open","import":"Counting.Bridge.OpenNetwork.Corrected","kind":"theorem","module":"Counting.Bridge.OpenNetwork.Corrected","name":"Counting.Bridge.OpenNetwork.tensor_occurrences_length","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : Type} [inst : CommSemiring R] {n : Nat} (N : Holant.OpenNetwork R n),\n  Eq (Counting.Bridge.OpenNetwork.toTensorInstance N).occurrences.length\n    (instHAdd.hAdd (instHAdd.hAdd N.shape.vertices N.shape.edges) n)","role":"public","source_line":40,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Corrected.lean","source_sha256":"aba50979661d1b4555a2877732cf61964156b67028c4885ea6a0aa64e70b5b40","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Corrected.lean#L40","type":"∀ {R : Type} [inst : CommSemiring.{0} R] {n : Nat} (N : Holant.OpenNetwork.{0} R n),\n  @Eq.{1} Nat\n    (@List.length.{0}\n      (@Counting.Model.Occurrence Bool R\n        (Sum.{0, 0}\n          (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n          (Fin n))\n        (@Counting.Bridge.OpenNetwork.tensorLanguage R inst n N)\n        (Sum.{0, 0} (Fin n) (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N))))\n      (@Counting.Model.OpenInstance.occurrences Bool R\n        (Sum.{0, 0}\n          (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n          (Fin n))\n        (@Counting.Bridge.OpenNetwork.tensorLanguage R inst n N) (Fin n)\n        (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N))\n        (@Counting.Bridge.OpenNetwork.toTensorInstance R inst n N)))\n    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n        (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n        (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N)))\n      n)"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.toOpenInstance","family":"open","import":"Counting.Bridge.OpenNetwork","kind":"definition","module":"Counting.Bridge.OpenNetwork","name":"Counting.Bridge.OpenNetwork.toOpenInstance","name_semantics":"actual named kernel declaration","readable_type":"{R : Type} →\n  {n : Nat} →\n    [inst : CommSemiring R] →\n      (N : Holant.OpenNetwork R n) →\n        Counting.Model.OpenInstance (Counting.Bridge.OpenNetwork.language N) (Fin n)\n          (Counting.Bridge.OpenNetwork.Hidden N)","role":"public","source_line":57,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork.lean","source_sha256":"2f6daf7c045f0c454616fefcb738cd9b8cf47dc95f01f37633c4d6c960788e8f","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork.lean#L57","specification":"fun {R : Type} {n : Nat} [inst : CommSemiring.{0} R] (N : Holant.OpenNetwork.{0} R n) =>\n  @Counting.Model.OpenInstance.mk Bool R\n    (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n      (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n    (@Counting.Bridge.OpenNetwork.language R n inst N) (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N)\n    (@HAppend.hAppend.{0, 0, 0}\n      (List.{0}\n        (@Counting.Model.Occurrence Bool R\n          (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n          (@Counting.Bridge.OpenNetwork.language R n inst N)\n          (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N))))\n      (List.{0}\n        (@Counting.Model.Occurrence Bool R\n          (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n          (@Counting.Bridge.OpenNetwork.language R n inst N)\n          (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N))))\n      (List.{0}\n        (@Counting.Model.Occurrence Bool R\n          (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n          (@Counting.Bridge.OpenNetwork.language R n inst N)\n          (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N))))\n      (@instHAppendOfAppend.{0}\n        (List.{0}\n          (@Counting.Model.Occurrence Bool R\n            (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (@Counting.Bridge.OpenNetwork.language R n inst N)\n            (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N))))\n        (@List.instAppend.{0}\n          (@Counting.Model.Occurrence Bool R\n            (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (@Counting.Bridge.OpenNetwork.language R n inst N)\n            (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N)))))\n      (@List.ofFn.{0}\n        (@Counting.Model.Occurrence Bool R\n          (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n          (@Counting.Bridge.OpenNetwork.language R n inst N)\n          (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N)))\n        (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N))\n        (@Counting.Bridge.OpenNetwork.vertexOccurrence R n inst N))\n      (@List.ofFn.{0}\n        (@Counting.Model.Occurrence Bool R\n          (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n          (@Counting.Bridge.OpenNetwork.language R n inst N)\n          (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N)))\n        (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))\n        (@Counting.Bridge.OpenNetwork.edgeOccurrence R n inst N)))","type":"{R : Type} →\n  {n : Nat} →\n    [inst : CommSemiring.{0} R] →\n      (N : Holant.OpenNetwork.{0} R n) →\n        @Counting.Model.OpenInstance Bool R\n          (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n          (@Counting.Bridge.OpenNetwork.language R n inst N) (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N)"},{"category":"tools","display_name":"Counting.Bridge.OpenNetwork.toTensorInstance","family":"open","import":"Counting.Bridge.OpenNetwork.Corrected","kind":"definition","module":"Counting.Bridge.OpenNetwork.Corrected","name":"Counting.Bridge.OpenNetwork.toTensorInstance","name_semantics":"actual named kernel declaration","readable_type":"{R : Type} →\n  [inst : CommSemiring R] →\n    {n : Nat} →\n      (N : Holant.OpenNetwork R n) →\n        Counting.Model.OpenInstance (Counting.Bridge.OpenNetwork.tensorLanguage N) (Fin n)\n          (Sum (Fin n) (Counting.Bridge.OpenNetwork.Hidden N))","role":"public","source_line":35,"source_path":"projects/open-network-bridge/Counting/Bridge/OpenNetwork/Corrected.lean","source_sha256":"aba50979661d1b4555a2877732cf61964156b67028c4885ea6a0aa64e70b5b40","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/open-network-bridge/Counting/Bridge/OpenNetwork/Corrected.lean#L35","specification":"fun {R : Type} [inst : CommSemiring.{0} R] {n : Nat} (N : Holant.OpenNetwork.{0} R n) =>\n  @Counting.Model.OpenInstance.mk Bool R\n    (Sum.{0, 0}\n      (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n        (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n      (Fin n))\n    (@Counting.Bridge.OpenNetwork.tensorLanguage R inst n N) (Fin n)\n    (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N))\n    (@HAppend.hAppend.{0, 0, 0}\n      (List.{0}\n        (@Counting.Model.Occurrence Bool R\n          (Sum.{0, 0}\n            (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (Fin n))\n          (@Counting.Bridge.OpenNetwork.tensorLanguage R inst n N)\n          (Sum.{0, 0} (Fin n) (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N)))))\n      (List.{0}\n        (@Counting.Model.Occurrence Bool R\n          (Sum.{0, 0}\n            (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (Fin n))\n          (@Counting.Bridge.OpenNetwork.tensorLanguage R inst n N)\n          (Sum.{0, 0} (Fin n) (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N)))))\n      (List.{0}\n        (@Counting.Model.Occurrence Bool R\n          (Sum.{0, 0}\n            (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (Fin n))\n          (@Counting.Bridge.OpenNetwork.tensorLanguage R inst n N)\n          (Sum.{0, 0} (Fin n) (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N)))))\n      (@instHAppendOfAppend.{0}\n        (List.{0}\n          (@Counting.Model.Occurrence Bool R\n            (Sum.{0, 0}\n              (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n                (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n              (Fin n))\n            (@Counting.Bridge.OpenNetwork.tensorLanguage R inst n N)\n            (Sum.{0, 0} (Fin n) (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N)))))\n        (@List.instAppend.{0}\n          (@Counting.Model.Occurrence Bool R\n            (Sum.{0, 0}\n              (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n                (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n              (Fin n))\n            (@Counting.Bridge.OpenNetwork.tensorLanguage R inst n N)\n            (Sum.{0, 0} (Fin n) (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N))))))\n      (@List.map.{0, 0}\n        (@Counting.Model.Occurrence Bool R\n          (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n          (@Counting.Bridge.OpenNetwork.language R n inst N)\n          (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N)))\n        (@Counting.Model.Occurrence Bool R\n          (Sum.{0, 0}\n            (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (Fin n))\n          (@Counting.Bridge.OpenNetwork.tensorLanguage R inst n N)\n          (Sum.{0, 0} (Fin n) (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N))))\n        (@Counting.Bridge.OpenNetwork.internalOccurrence R inst n N)\n        (@Counting.Model.OpenInstance.occurrences Bool R\n          (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n            (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n          (@Counting.Bridge.OpenNetwork.language R n inst N) (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N)\n          (@Counting.Bridge.OpenNetwork.toOpenInstance R n inst N)))\n      (@List.ofFn.{0}\n        (@Counting.Model.Occurrence Bool R\n          (Sum.{0, 0}\n            (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (Fin n))\n          (@Counting.Bridge.OpenNetwork.tensorLanguage R inst n N)\n          (Sum.{0, 0} (Fin n) (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N))))\n        n (@Counting.Bridge.OpenNetwork.boundaryOccurrence R inst n N)))","type":"{R : Type} →\n  [inst : CommSemiring.{0} R] →\n    {n : Nat} →\n      (N : Holant.OpenNetwork.{0} R n) →\n        @Counting.Model.OpenInstance Bool R\n          (Sum.{0, 0}\n            (Sum.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{0} R n N)))\n              (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{0} R n N))))\n            (Fin n))\n          (@Counting.Bridge.OpenNetwork.tensorLanguage R inst n N) (Fin n)\n          (Sum.{0, 0} (Fin n) (@Counting.Bridge.OpenNetwork.Hidden R n N))"},{"category":"core","display_name":"Counting.Bridge.WitnessSharpP.bits_inSharpP_iff_acceptingPaths","family":"core-witness-bridge","import":"Counting.Bridge.WitnessSharpP","kind":"theorem","module":"Counting.Bridge.WitnessSharpP","name":"Counting.Bridge.WitnessSharpP.bits_inSharpP_iff_acceptingPaths","readable_type":"∀ (f : PlanarHom.Complexity.Bits → Nat),\n  Iff (Counting.Complexity.InSharpP (Computability.encodingList Bool) f) (PlanarHom.Complexity.SharpP f)","role":"theorem","source_line":96,"source_path":"projects/witness-machines/Counting/Bridge/WitnessSharpP.lean","source_sha256":"a43a855b0338d639a0cdd4a3d6b06091d259ddfb5e6e4ded83f4ee8799f2b6dc","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/witness-machines/Counting/Bridge/WitnessSharpP.lean#L96","summary":"The public witness interface agrees with independent finite-alphabet accepting paths, by both actual pair/output transducers and the PH compilers.","type":"∀ (f : PlanarHom.Complexity.Bits → Nat),\n  Iff (@Counting.Complexity.InSharpP (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool) f)\n    (PlanarHom.Complexity.SharpP f)"},{"category":"flagships","display_name":"Counting.ComplexCSP.Recognition.decode_encode","family":"complex-csp","import":"Counting.ComplexCSP.Recognition","kind":"theorem","module":"Counting.ComplexCSP.Recognition","name":"Counting.ComplexCSP.Recognition.decode_encode","original_declaration":"ComplexCSP.Recognition.finiteAlgebraicLanguage_decode_encode","readable_type":"∀ (L : Counting.ComplexCSP.Recognition.FiniteAlgebraicLanguage),\n  Eq\n    (ComplexCSP.Recognition.instEncodableFiniteAlgebraicLanguage.decode\n      (ComplexCSP.Recognition.instEncodableFiniteAlgebraicLanguage.encode L))\n    (Option.some L)","role":"theorem","source_line":33,"source_path":"projects/complex-csp/Counting/ComplexCSP/Recognition.lean","source_sha256":"84ee3b238e340dbbf76547b6b52c3e6bfb7d97da3b7a782c78baca57bbec6a45","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/complex-csp/Counting/ComplexCSP/Recognition.lean#L33","type":"∀ (L : Counting.ComplexCSP.Recognition.FiniteAlgebraicLanguage),\n  @Eq.{1} (Option.{0} Counting.ComplexCSP.Recognition.FiniteAlgebraicLanguage)\n    (@Encodable.decode.{0} Counting.ComplexCSP.Recognition.FiniteAlgebraicLanguage\n      ComplexCSP.Recognition.instEncodableFiniteAlgebraicLanguage\n      (@Encodable.encode.{0} Counting.ComplexCSP.Recognition.FiniteAlgebraicLanguage\n        ComplexCSP.Recognition.instEncodableFiniteAlgebraicLanguage L))\n    (@Option.some.{0} Counting.ComplexCSP.Recognition.FiniteAlgebraicLanguage L)"},{"category":"flagships","display_name":"Counting.ComplexCSP.Recognition.recognizeDegree_correct","family":"complex-csp","import":"Counting.ComplexCSP.Recognition","kind":"theorem","module":"Counting.ComplexCSP.Recognition","name":"Counting.ComplexCSP.Recognition.recognizeDegree_correct","original_declaration":"ComplexCSP.Recognition.encodedDegreeGlobalTest_correct","readable_type":"∀ (L : Counting.ComplexCSP.Recognition.FiniteAlgebraicLanguage)\n  (hL : ComplexCSP.Recognition.FiniteAlgebraicLanguage.Valid L) (δ : Nat) (hδ : instLTNat.lt 0 δ)\n  (z : (i : Fin L.signatureSize) → (Fin (L.tables.arity i) → Fin L.domainSize) → Complex),\n  (∀ (i : Fin L.signatureSize) (a : Fin (L.tables.arity i) → Fin L.domainSize),\n      (L.tables.value i a).Represents (z i a)) →\n    Iff (Eq (Counting.ComplexCSP.Recognition.recognizeDegree L hL δ hδ) Bool.true)\n      (ComplexCSP.DegreeCaiChenConditions (ComplexCSP.Recognition.realizedAlgebraicLanguage L.tables z) δ)","role":"theorem","source_line":25,"source_path":"projects/complex-csp/Counting/ComplexCSP/Recognition.lean","source_sha256":"84ee3b238e340dbbf76547b6b52c3e6bfb7d97da3b7a782c78baca57bbec6a45","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/complex-csp/Counting/ComplexCSP/Recognition.lean#L25","type":"∀ (L : Counting.ComplexCSP.Recognition.FiniteAlgebraicLanguage)\n  (hL : ComplexCSP.Recognition.FiniteAlgebraicLanguage.Valid L) (δ : Nat)\n  (hδ : @LT.lt.{0} Nat instLTNat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) δ)\n  (z :\n    (i : Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L)) →\n      (Fin\n            (@ComplexCSP.Language.arity (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L))\n              ComplexCSP.AlgebraicEncoding.AlgebraicInput\n              (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n              (ComplexCSP.Recognition.FiniteAlgebraicLanguage.tables L) i) →\n          Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)) →\n        Complex)\n  (hz :\n    ∀ (i : Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n      (a :\n        Fin\n            (@ComplexCSP.Language.arity (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L))\n              ComplexCSP.AlgebraicEncoding.AlgebraicInput\n              (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n              (ComplexCSP.Recognition.FiniteAlgebraicLanguage.tables L) i) →\n          Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)),\n      ComplexCSP.AlgebraicEncoding.AlgebraicInput.Represents\n        (@ComplexCSP.Language.value (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L))\n          ComplexCSP.AlgebraicEncoding.AlgebraicInput\n          (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n          (ComplexCSP.Recognition.FiniteAlgebraicLanguage.tables L) i a)\n        (z i a)),\n  Iff (@Eq.{1} Bool (Counting.ComplexCSP.Recognition.recognizeDegree L hL δ hδ) Bool.true)\n    (@ComplexCSP.DegreeCaiChenConditions (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L))\n      (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n      (Fin.fintype (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L))\n      (@ComplexCSP.Recognition.realizedAlgebraicLanguage\n        (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L))\n        (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n        (ComplexCSP.Recognition.FiniteAlgebraicLanguage.tables L) z)\n      δ)"},{"category":"flagships","display_name":"Counting.ComplexCSP.Recognition.recognize_correct","family":"complex-csp","import":"Counting.ComplexCSP.Recognition","kind":"theorem","module":"Counting.ComplexCSP.Recognition","name":"Counting.ComplexCSP.Recognition.recognize_correct","original_declaration":"ComplexCSP.Recognition.encodedGlobalTest_correct","readable_type":"∀ (L : Counting.ComplexCSP.Recognition.FiniteAlgebraicLanguage)\n  (hL : ComplexCSP.Recognition.FiniteAlgebraicLanguage.Valid L)\n  (z : (i : Fin L.signatureSize) → (Fin (L.tables.arity i) → Fin L.domainSize) → Complex),\n  (∀ (i : Fin L.signatureSize) (a : Fin (L.tables.arity i) → Fin L.domainSize),\n      (L.tables.value i a).Represents (z i a)) →\n    Iff (Eq (Counting.ComplexCSP.Recognition.recognize L hL) Bool.true)\n      (ComplexCSP.CaiChenConditions (ComplexCSP.Recognition.realizedAlgebraicLanguage L.tables z))","role":"theorem","source_line":18,"source_path":"projects/complex-csp/Counting/ComplexCSP/Recognition.lean","source_sha256":"84ee3b238e340dbbf76547b6b52c3e6bfb7d97da3b7a782c78baca57bbec6a45","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/complex-csp/Counting/ComplexCSP/Recognition.lean#L18","type":"∀ (L : Counting.ComplexCSP.Recognition.FiniteAlgebraicLanguage)\n  (hL : ComplexCSP.Recognition.FiniteAlgebraicLanguage.Valid L)\n  (z :\n    (i : Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L)) →\n      (Fin\n            (@ComplexCSP.Language.arity (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L))\n              ComplexCSP.AlgebraicEncoding.AlgebraicInput\n              (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n              (ComplexCSP.Recognition.FiniteAlgebraicLanguage.tables L) i) →\n          Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)) →\n        Complex)\n  (hz :\n    ∀ (i : Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n      (a :\n        Fin\n            (@ComplexCSP.Language.arity (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L))\n              ComplexCSP.AlgebraicEncoding.AlgebraicInput\n              (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n              (ComplexCSP.Recognition.FiniteAlgebraicLanguage.tables L) i) →\n          Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L)),\n      ComplexCSP.AlgebraicEncoding.AlgebraicInput.Represents\n        (@ComplexCSP.Language.value (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L))\n          ComplexCSP.AlgebraicEncoding.AlgebraicInput\n          (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n          (ComplexCSP.Recognition.FiniteAlgebraicLanguage.tables L) i a)\n        (z i a)),\n  Iff (@Eq.{1} Bool (Counting.ComplexCSP.Recognition.recognize L hL) Bool.true)\n    (@ComplexCSP.CaiChenConditions (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L))\n      (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n      (Fin.fintype (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L))\n      (@ComplexCSP.Recognition.realizedAlgebraicLanguage\n        (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.domainSize L))\n        (Fin (ComplexCSP.Recognition.FiniteAlgebraicLanguage.signatureSize L))\n        (ComplexCSP.Recognition.FiniteAlgebraicLanguage.tables L) z))"},{"category":"flagships","display_name":"Counting.ComplexCSP.Recognition.representation_unique","family":"complex-csp","import":"Counting.ComplexCSP.Recognition","kind":"theorem","module":"Counting.ComplexCSP.Recognition","name":"Counting.ComplexCSP.Recognition.representation_unique","original_declaration":"ComplexCSP.AlgebraicEncoding.AlgebraicInput.Represents.unique","readable_type":"∀ {a : Counting.ComplexCSP.Recognition.AlgebraicInput} {z w : Complex},\n  ComplexCSP.AlgebraicEncoding.AlgebraicInput.Represents a z →\n    ComplexCSP.AlgebraicEncoding.AlgebraicInput.Represents a w → Eq w z","role":"theorem","source_line":37,"source_path":"projects/complex-csp/Counting/ComplexCSP/Recognition.lean","source_sha256":"84ee3b238e340dbbf76547b6b52c3e6bfb7d97da3b7a782c78baca57bbec6a45","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/complex-csp/Counting/ComplexCSP/Recognition.lean#L37","type":"∀ {a : Counting.ComplexCSP.Recognition.AlgebraicInput} {z w : Complex}\n  (hz : ComplexCSP.AlgebraicEncoding.AlgebraicInput.Represents a z)\n  (hw : ComplexCSP.AlgebraicEncoding.AlgebraicInput.Represents a w), @Eq.{1} Complex w z"},{"category":"flagships","display_name":"Counting.ComplexCSP.degree_conditions_at_one","family":"complex-csp","import":"Counting.ComplexCSP.DegreeStructuralCollapse","kind":"theorem","module":"Counting.ComplexCSP.DegreeStructuralCollapse","name":"Counting.ComplexCSP.degree_conditions_at_one","original_declaration":"ComplexCSP.degreeCaiChenConditions_one_iff","readable_type":"∀ {D ι : Type} [inst : Fintype D] (L : ComplexCSP.Language D Complex ι),\n  Iff (ComplexCSP.DegreeCaiChenConditions L 1) (ComplexCSP.CaiChenConditions L)","role":"theorem","source_line":12,"source_path":"projects/complex-csp/Counting/ComplexCSP/DegreeStructuralCollapse.lean","source_sha256":"53ad8202c2d4a924d50e7a9bcc4c4a7c3d907bf849ae13487b70d70c7a904442","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/complex-csp/Counting/ComplexCSP/DegreeStructuralCollapse.lean#L12","type":"∀ {D ι : Type} [inst : Fintype.{0} D] (L : ComplexCSP.Language D Complex ι),\n  Iff (@ComplexCSP.DegreeCaiChenConditions D ι inst L (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n    (@ComplexCSP.CaiChenConditions D ι inst L)"},{"category":"flagships","display_name":"Counting.ComplexCSP.degree_structural_collapse","family":"complex-csp","import":"Counting.ComplexCSP.DegreeStructuralCollapse","kind":"theorem","module":"Counting.ComplexCSP.DegreeStructuralCollapse","name":"Counting.ComplexCSP.degree_structural_collapse","original_declaration":"ComplexCSP.degree_structural_collapse","readable_type":"∀ {D ι : Type} [inst : Fintype D] [Nonempty D] [Fintype ι] (L : ComplexCSP.Language D Complex ι) (δ : Nat),\n  (∀ (i : ι) (a : Fin (L.arity i) → D), IsAlgebraic Rat (L.value i a)) →\n    Iff (ComplexCSP.DegreeCaiChenConditions L δ) (ComplexCSP.DegreeJointBO L δ)","role":"theorem","source_line":6,"source_path":"projects/complex-csp/Counting/ComplexCSP/DegreeStructuralCollapse.lean","source_sha256":"53ad8202c2d4a924d50e7a9bcc4c4a7c3d907bf849ae13487b70d70c7a904442","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/complex-csp/Counting/ComplexCSP/DegreeStructuralCollapse.lean#L6","type":"∀ {D ι : Type} [inst : Fintype.{0} D] [Nonempty.{1} D] [Fintype.{0} ι] (L : ComplexCSP.Language D Complex ι) (δ : Nat)\n  (hAlg :\n    ∀ (i : ι) (a : Fin (@ComplexCSP.Language.arity D Complex ι L i) → D),\n      @IsAlgebraic.{0, 0} Rat Complex Rat.commRing Complex.instRing\n        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n          Complex.instCharZero)\n        (@ComplexCSP.Language.value D Complex ι L i a)),\n  Iff (@ComplexCSP.DegreeCaiChenConditions D ι inst L δ) (@ComplexCSP.DegreeJointBO D ι inst L δ)"},{"category":"flagships","display_name":"Counting.ComplexCSP.jointBO_global_maltsev","family":"complex-csp","import":"Counting.ComplexCSP.StructuralCollapse","kind":"theorem","module":"Counting.ComplexCSP.StructuralCollapse","name":"Counting.ComplexCSP.jointBO_global_maltsev","original_declaration":"ComplexCSP.JointBO.global_maltsev","readable_type":"∀ {D ι : Type} [inst : Fintype D] [Nonempty D] [Fintype ι] (L : ComplexCSP.Language D Complex ι),\n  (∀ (i : ι) (a : Fin (L.arity i) → D), IsAlgebraic Rat (L.value i a)) →\n    ComplexCSP.JointBO L → ComplexCSP.GlobalMaltsev L","role":"theorem","source_line":18,"source_path":"projects/complex-csp/Counting/ComplexCSP/StructuralCollapse.lean","source_sha256":"c2b613338f289e6f08b097b07754c2380406d6f96cb42204322eaa42db9de4a0","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/complex-csp/Counting/ComplexCSP/StructuralCollapse.lean#L18","type":"∀ {D ι : Type} [inst : Fintype.{0} D] [Nonempty.{1} D] [Fintype.{0} ι] (L : ComplexCSP.Language D Complex ι)\n  (hAlg :\n    ∀ (i : ι) (a : Fin (@ComplexCSP.Language.arity D Complex ι L i) → D),\n      @IsAlgebraic.{0, 0} Rat Complex Rat.commRing Complex.instRing\n        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n          Complex.instCharZero)\n        (@ComplexCSP.Language.value D Complex ι L i a))\n  (hBO : @ComplexCSP.JointBO D inst ι L), @ComplexCSP.GlobalMaltsev D ι inst L"},{"category":"flagships","display_name":"Counting.ComplexCSP.jointBO_global_type_partition","family":"complex-csp","import":"Counting.ComplexCSP.StructuralCollapse","kind":"theorem","module":"Counting.ComplexCSP.StructuralCollapse","name":"Counting.ComplexCSP.jointBO_global_type_partition","original_declaration":"ComplexCSP.JointBO.global_type_partition","readable_type":"∀ {D ι : Type} [inst : Fintype D] [Nonempty D] [Fintype ι] (L : ComplexCSP.Language D Complex ι),\n  (∀ (i : ι) (a : Fin (L.arity i) → D), IsAlgebraic Rat (L.value i a)) →\n    ComplexCSP.JointBO L → ComplexCSP.GlobalTypePartition L","role":"theorem","source_line":12,"source_path":"projects/complex-csp/Counting/ComplexCSP/StructuralCollapse.lean","source_sha256":"c2b613338f289e6f08b097b07754c2380406d6f96cb42204322eaa42db9de4a0","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/complex-csp/Counting/ComplexCSP/StructuralCollapse.lean#L12","type":"∀ {D ι : Type} [inst : Fintype.{0} D] [Nonempty.{1} D] [Fintype.{0} ι] (L : ComplexCSP.Language D Complex ι)\n  (hAlg :\n    ∀ (i : ι) (a : Fin (@ComplexCSP.Language.arity D Complex ι L i) → D),\n      @IsAlgebraic.{0, 0} Rat Complex Rat.commRing Complex.instRing\n        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n          Complex.instCharZero)\n        (@ComplexCSP.Language.value D Complex ι L i a))\n  (hBO : @ComplexCSP.JointBO D inst ι L), @ComplexCSP.GlobalTypePartition D ι inst L"},{"category":"flagships","display_name":"Counting.ComplexCSP.structural_collapse","family":"complex-csp","import":"Counting.ComplexCSP.StructuralCollapse","kind":"theorem","module":"Counting.ComplexCSP.StructuralCollapse","name":"Counting.ComplexCSP.structural_collapse","original_declaration":"ComplexCSP.structural_collapse","readable_type":"∀ {D ι : Type} [inst : Fintype D] [Nonempty D] [Fintype ι] (L : ComplexCSP.Language D Complex ι),\n  (∀ (i : ι) (a : Fin (L.arity i) → D), IsAlgebraic Rat (L.value i a)) →\n    Iff (ComplexCSP.CaiChenConditions L) (ComplexCSP.JointBO L)","role":"theorem","source_line":6,"source_path":"projects/complex-csp/Counting/ComplexCSP/StructuralCollapse.lean","source_sha256":"c2b613338f289e6f08b097b07754c2380406d6f96cb42204322eaa42db9de4a0","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/complex-csp/Counting/ComplexCSP/StructuralCollapse.lean#L6","type":"∀ {D ι : Type} [inst : Fintype.{0} D] [Nonempty.{1} D] [Fintype.{0} ι] (L : ComplexCSP.Language D Complex ι)\n  (hAlg :\n    ∀ (i : ι) (a : Fin (@ComplexCSP.Language.arity D Complex ι L i) → D),\n      @IsAlgebraic.{0, 0} Rat Complex Rat.commRing Complex.instRing\n        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n          Complex.instCharZero)\n        (@ComplexCSP.Language.value D Complex ι L i a)),\n  Iff (@ComplexCSP.CaiChenConditions D ι inst L) (@ComplexCSP.JointBO D inst ι L)"},{"category":"core","display_name":"Counting.Complexity.HardFor.transport","family":"core-reductions","import":"Counting.Complexity.Reduction","kind":"theorem","module":"Counting.Complexity.Reduction","name":"Counting.Complexity.HardFor.transport","readable_type":"∀ {α β γ Γα Γβ Γγ : Type} [inst : Fintype Γα] [inst_1 : Fintype Γβ] [inst_2 : Fintype Γγ]\n  {ea : Computability.Encoding α Γα} {eb : Computability.Encoding β Γβ} {ec : Computability.Encoding γ Γγ}\n  {C : (α → Nat) → Prop} {g : β → Nat} {h : γ → Nat},\n  Counting.Complexity.HardFor ea eb C g →\n    Counting.Complexity.ParsimoniousReduces eb ec g h → Counting.Complexity.HardFor ea ec C h","role":"theorem","source_line":155,"source_path":"projects/foundations/Counting/Complexity/Reduction.lean","source_sha256":"495cca40a9cf18eb645f6fa961987cacbcf10513808f162e9697f237d1100a0c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Complexity/Reduction.lean#L155","summary":"Hardness propagates forward along an implemented parsimonious reduction.","type":"∀ {α β γ Γα Γβ Γγ : Type} [inst : Fintype.{0} Γα] [inst_1 : Fintype.{0} Γβ] [inst_2 : Fintype.{0} Γγ]\n  {ea : Computability.Encoding.{0, 0} α Γα} {eb : Computability.Encoding.{0, 0} β Γβ}\n  {ec : Computability.Encoding.{0, 0} γ Γγ} {C : (α → Nat) → Prop} {g : β → Nat} {h : γ → Nat}\n  (hg : @Counting.Complexity.HardFor α β Γα Γβ inst inst_1 ea eb C g)\n  (r : @Counting.Complexity.ParsimoniousReduces β γ Γβ Γγ inst_1 inst_2 eb ec g h),\n  @Counting.Complexity.HardFor α γ Γα Γγ inst inst_2 ea ec C h"},{"category":"core","display_name":"Counting.Complexity.InSharpP","family":"core-sharpp","import":"Counting.Complexity.SharpP","kind":"definition","module":"Counting.Complexity.SharpP","name":"Counting.Complexity.InSharpP","readable_type":"{α Γ : Type} → [Fintype Γ] → Computability.Encoding α Γ → (α → Nat) → Prop","role":"definition","source_line":35,"source_path":"projects/foundations/Counting/Complexity/SharpP.lean","source_sha256":"c386d7ad99a06216a999fa3355492cb1220fe6d8ca4656d83458b2e7df41508a","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Complexity/SharpP.lean#L35","summary":"Existence of a witness counter with a proved finite-machine polynomial bound.","type":"{α Γ : Type} → [Fintype.{0} Γ] → (ea : Computability.Encoding.{0, 0} α Γ) → (f : α → Nat) → Prop"},{"category":"tools","display_name":"Counting.Complexity.ParsimoniousEquivalent.inSharpP_iff","family":"sharpp","import":"Counting.SharpPClosure","kind":"theorem","module":"Counting.SharpPClosure.Transport","name":"Counting.Complexity.ParsimoniousEquivalent.inSharpP_iff","name_semantics":"actual named kernel declaration","readable_type":"∀ {f g : PlanarHom.Complexity.Bits → Nat},\n  Counting.Complexity.ParsimoniousEquivalent (Computability.encodingList Bool) (Computability.encodingList Bool) f g →\n    Iff (Counting.Complexity.InSharpP (Computability.encodingList Bool) f)\n      (Counting.Complexity.InSharpP (Computability.encodingList Bool) g)","role":"public","source_line":161,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Transport.lean","source_sha256":"b95d8080c5ba03fb5e1df4368647a430e3648ae4c715ce91b856c398f5bab3fc","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Transport.lean#L161","type":"∀ {f g : PlanarHom.Complexity.Bits → Nat}\n  (r :\n    @Counting.Complexity.ParsimoniousEquivalent (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype Bool.fintype\n      (Computability.encodingList Bool) (Computability.encodingList Bool) f g),\n  Iff (@Counting.Complexity.InSharpP (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool) f)\n    (@Counting.Complexity.InSharpP (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool) g)"},{"category":"tools","display_name":"Counting.Complexity.ParsimoniousReduces.inSharpP","family":"sharpp","import":"Counting.SharpPClosure","kind":"theorem","module":"Counting.SharpPClosure.Transport","name":"Counting.Complexity.ParsimoniousReduces.inSharpP","name_semantics":"actual named kernel declaration","readable_type":"∀ {f g : PlanarHom.Complexity.Bits → Nat},\n  Counting.Complexity.ParsimoniousReduces (Computability.encodingList Bool) (Computability.encodingList Bool) f g →\n    Counting.Complexity.InSharpP (Computability.encodingList Bool) g →\n      Counting.Complexity.InSharpP (Computability.encodingList Bool) f","role":"public","source_line":149,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Transport.lean","source_sha256":"b95d8080c5ba03fb5e1df4368647a430e3648ae4c715ce91b856c398f5bab3fc","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Transport.lean#L149","type":"∀ {f g : PlanarHom.Complexity.Bits → Nat}\n  (r :\n    @Counting.Complexity.ParsimoniousReduces (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype Bool.fintype\n      (Computability.encodingList Bool) (Computability.encodingList Bool) f g)\n  (hg : @Counting.Complexity.InSharpP (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool) g),\n  @Counting.Complexity.InSharpP (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool) f"},{"category":"core","display_name":"Counting.Complexity.ParsimoniousReduction","family":"core-reductions","import":"Counting.Complexity.Reduction","kind":"inductive","module":"Counting.Complexity.Reduction","name":"Counting.Complexity.ParsimoniousReduction","readable_type":"{α β Γα Γβ : Type} →\n  [Fintype Γα] →\n    [Fintype Γβ] → Computability.Encoding α Γα → Computability.Encoding β Γβ → (α → Nat) → (β → Nat) → Type 1","role":"inductive","source_line":27,"source_path":"projects/foundations/Counting/Complexity/Reduction.lean","source_sha256":"495cca40a9cf18eb645f6fa961987cacbcf10513808f162e9697f237d1100a0c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Complexity/Reduction.lean#L27","summary":"A count-preserving instance transformation, implemented by a concrete finite machine whose transition count is polynomial in the explicitly encoded input.","type":"{α β Γα Γβ : Type} →\n  [Fintype.{0} Γα] →\n    [Fintype.{0} Γβ] →\n      (ea : Computability.Encoding.{0, 0} α Γα) →\n        (eb : Computability.Encoding.{0, 0} β Γβ) → (f : α → Nat) → (g : β → Nat) → Type 1"},{"category":"core","display_name":"Counting.Complexity.ParsimoniousReduction.inFP","family":"core-reductions","import":"Counting.Complexity.Reduction","kind":"theorem","module":"Counting.Complexity.Reduction","name":"Counting.Complexity.ParsimoniousReduction.inFP","readable_type":"∀ {α β Γα Γβ Γn : Type} [inst : Fintype Γα] [inst_1 : Fintype Γβ] [inst_2 : Fintype Γn]\n  {ea : Computability.Encoding α Γα} {eb : Computability.Encoding β Γβ} {en : Computability.Encoding Nat Γn}\n  {f : α → Nat} {g : β → Nat} (r : Counting.Complexity.ParsimoniousReduction ea eb f g),\n  Counting.Computation.InFP eb en g → Counting.Computation.InFP ea en f","role":"theorem","source_line":109,"source_path":"projects/foundations/Counting/Complexity/Reduction.lean","source_sha256":"495cca40a9cf18eb645f6fa961987cacbcf10513808f162e9697f237d1100a0c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Complexity/Reduction.lean#L109","summary":"Downward closure of FP under the implemented parsimonious reduction.","type":"∀ {α β Γα Γβ Γn : Type} [inst : Fintype.{0} Γα] [inst_1 : Fintype.{0} Γβ] [inst_2 : Fintype.{0} Γn]\n  {ea : Computability.Encoding.{0, 0} α Γα} {eb : Computability.Encoding.{0, 0} β Γβ}\n  {en : Computability.Encoding.{0, 0} Nat Γn} {f : α → Nat} {g : β → Nat}\n  (r : @Counting.Complexity.ParsimoniousReduction α β Γα Γβ inst inst_1 ea eb f g)\n  (hg : @Counting.Computation.InFP β Nat Γβ Γn inst_1 inst_2 eb en g),\n  @Counting.Computation.InFP α Nat Γα Γn inst inst_2 ea en f"},{"category":"tools","display_name":"Counting.Complexity.ParsimoniousReduction.inSharpP","family":"sharpp","import":"Counting.SharpPClosure","kind":"theorem","module":"Counting.SharpPClosure.Transport","name":"Counting.Complexity.ParsimoniousReduction.inSharpP","name_semantics":"actual named kernel declaration","readable_type":"∀ {f g : PlanarHom.Complexity.Bits → Nat}\n  (r :\n    Counting.Complexity.ParsimoniousReduction (Computability.encodingList Bool) (Computability.encodingList Bool) f g),\n  Counting.Complexity.InSharpP (Computability.encodingList Bool) g →\n    Counting.Complexity.InSharpP (Computability.encodingList Bool) f","role":"public","source_line":137,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Transport.lean","source_sha256":"b95d8080c5ba03fb5e1df4368647a430e3648ae4c715ce91b856c398f5bab3fc","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Transport.lean#L137","type":"∀ {f g : PlanarHom.Complexity.Bits → Nat}\n  (r :\n    @Counting.Complexity.ParsimoniousReduction (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype Bool.fintype\n      (Computability.encodingList Bool) (Computability.encodingList Bool) f g)\n  (hg : @Counting.Complexity.InSharpP (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool) g),\n  @Counting.Complexity.InSharpP (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool) f"},{"category":"core","display_name":"Counting.Complexity.ParsimoniousReduction.map_encoded_length_le","family":"core-reductions","import":"Counting.Complexity.Reduction","kind":"theorem","module":"Counting.Complexity.Reduction","name":"Counting.Complexity.ParsimoniousReduction.map_encoded_length_le","readable_type":"∀ {α β Γα Γβ : Type} [inst : Fintype Γα] [inst_1 : Fintype Γβ] {ea : Computability.Encoding α Γα}\n  {eb : Computability.Encoding β Γβ} {f : α → Nat} {g : β → Nat}\n  (r : Counting.Complexity.ParsimoniousReduction ea eb f g) (a : α),\n  instLENat.le (eb.encode (r.map a)).length (Polynomial.eval (ea.encode a).length r.machine.outputLengthPolynomial)","role":"theorem","source_line":69,"source_path":"projects/foundations/Counting/Complexity/Reduction.lean","source_sha256":"495cca40a9cf18eb645f6fa961987cacbcf10513808f162e9697f237d1100a0c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Complexity/Reduction.lean#L69","summary":"Every reduction has a proved polynomial bound on the size of its output instance, rather than merely an assumed output-size condition.","type":"∀ {α β Γα Γβ : Type} [inst : Fintype.{0} Γα] [inst_1 : Fintype.{0} Γβ] {ea : Computability.Encoding.{0, 0} α Γα}\n  {eb : Computability.Encoding.{0, 0} β Γβ} {f : α → Nat} {g : β → Nat}\n  (r : @Counting.Complexity.ParsimoniousReduction α β Γα Γβ inst inst_1 ea eb f g) (a : α),\n  @LE.le.{0} Nat instLENat\n    (@List.length.{0} Γβ\n      (@Computability.Encoding.encode.{0, 0} β Γβ eb\n        (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r a)))\n    (@Polynomial.eval.{0} Nat Nat.instSemiring (@List.length.{0} Γα (@Computability.Encoding.encode.{0, 0} α Γα ea a))\n      (@Counting.Computation.PolyTime.outputLengthPolynomial α β Γα Γβ inst inst_1 ea eb\n        (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n        (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r)))"},{"category":"tools","display_name":"Counting.Complexity.ParsimoniousReduction.sharpPWitness","family":"sharpp","import":"Counting.SharpPClosure","kind":"definition","module":"Counting.SharpPClosure.Transport","name":"Counting.Complexity.ParsimoniousReduction.sharpPWitness","name_semantics":"actual named kernel declaration","readable_type":"{f g : PlanarHom.Complexity.Bits → Nat} →\n  Counting.Complexity.ParsimoniousReduction (Computability.encodingList Bool) (Computability.encodingList Bool) f g →\n    Counting.Complexity.SharpPWitness (Computability.encodingList Bool) g →\n      Counting.Complexity.SharpPWitness (Computability.encodingList Bool) f","role":"public","source_line":126,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Transport.lean","source_sha256":"b95d8080c5ba03fb5e1df4368647a430e3648ae4c715ce91b856c398f5bab3fc","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Transport.lean#L126","type":"{f g : PlanarHom.Complexity.Bits → Nat} →\n  (r :\n      @Counting.Complexity.ParsimoniousReduction (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype Bool.fintype\n        (Computability.encodingList Bool) (Computability.encodingList Bool) f g) →\n    (w : @Counting.Complexity.SharpPWitness (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool) g) →\n      @Counting.Complexity.SharpPWitness (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool) f"},{"category":"core","display_name":"Counting.Complexity.ParsimoniousReduction.trans","family":"core-reductions","import":"Counting.Complexity.Reduction","kind":"definition","module":"Counting.Complexity.Reduction","name":"Counting.Complexity.ParsimoniousReduction.trans","readable_type":"{α β γ Γα Γβ Γγ : Type} →\n  [inst : Fintype Γα] →\n    [inst_1 : Fintype Γβ] →\n      [inst_2 : Fintype Γγ] →\n        {ea : Computability.Encoding α Γα} →\n          {eb : Computability.Encoding β Γβ} →\n            {ec : Computability.Encoding γ Γγ} →\n              {f : α → Nat} →\n                {g : β → Nat} →\n                  {h : γ → Nat} →\n                    Counting.Complexity.ParsimoniousReduction ea eb f g →\n                      Counting.Complexity.ParsimoniousReduction eb ec g h →\n                        Counting.Complexity.ParsimoniousReduction ea ec f h","role":"definition","source_line":48,"source_path":"projects/foundations/Counting/Complexity/Reduction.lean","source_sha256":"495cca40a9cf18eb645f6fa961987cacbcf10513808f162e9697f237d1100a0c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Complexity/Reduction.lean#L48","summary":"Compose instance maps by compiling their finite machines and compose the count-preservation equations in the same direction.","type":"{α β γ Γα Γβ Γγ : Type} →\n  [inst : Fintype.{0} Γα] →\n    [inst_1 : Fintype.{0} Γβ] →\n      [inst_2 : Fintype.{0} Γγ] →\n        {ea : Computability.Encoding.{0, 0} α Γα} →\n          {eb : Computability.Encoding.{0, 0} β Γβ} →\n            {ec : Computability.Encoding.{0, 0} γ Γγ} →\n              {f : α → Nat} →\n                {g : β → Nat} →\n                  {h : γ → Nat} →\n                    (r : @Counting.Complexity.ParsimoniousReduction α β Γα Γβ inst inst_1 ea eb f g) →\n                      (s : @Counting.Complexity.ParsimoniousReduction β γ Γβ Γγ inst_1 inst_2 eb ec g h) →\n                        @Counting.Complexity.ParsimoniousReduction α γ Γα Γγ inst inst_2 ea ec f h"},{"category":"core","display_name":"Counting.Complexity.ParsimoniousReduction.trans_steps","family":"core-reductions","import":"Counting.Complexity.Reduction","kind":"theorem","module":"Counting.Complexity.Reduction","name":"Counting.Complexity.ParsimoniousReduction.trans_steps","readable_type":"∀ {α β γ Γα Γβ Γγ : Type} [inst : Fintype Γα] [inst_1 : Fintype Γβ] [inst_2 : Fintype Γγ]\n  {ea : Computability.Encoding α Γα} {eb : Computability.Encoding β Γβ} {ec : Computability.Encoding γ Γγ} {f : α → Nat}\n  {g : β → Nat} {h : γ → Nat} (r : Counting.Complexity.ParsimoniousReduction ea eb f g)\n  (s : Counting.Complexity.ParsimoniousReduction eb ec g h) (a : α),\n  Eq ((r.trans s).machine.outputsFun a).steps\n    (instHAdd.hAdd (s.machine.outputsFun (r.map a)).steps (r.machine.outputsFun a).steps)","role":"theorem","source_line":62,"source_path":"projects/foundations/Counting/Complexity/Reduction.lean","source_sha256":"495cca40a9cf18eb645f6fa961987cacbcf10513808f162e9697f237d1100a0c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Complexity/Reduction.lean#L62","summary":"The compiled reduction executes the original machines' two concrete runs.","type":"∀ {α β γ Γα Γβ Γγ : Type} [inst : Fintype.{0} Γα] [inst_1 : Fintype.{0} Γβ] [inst_2 : Fintype.{0} Γγ]\n  {ea : Computability.Encoding.{0, 0} α Γα} {eb : Computability.Encoding.{0, 0} β Γβ}\n  {ec : Computability.Encoding.{0, 0} γ Γγ} {f : α → Nat} {g : β → Nat} {h : γ → Nat}\n  (r : @Counting.Complexity.ParsimoniousReduction α β Γα Γβ inst inst_1 ea eb f g)\n  (s : @Counting.Complexity.ParsimoniousReduction β γ Γβ Γγ inst_1 inst_2 eb ec g h) (a : α),\n  @Eq.{1} Nat\n    (@StateTransition.EvalsTo.steps.{0}\n      (Turing.FinTM2.Cfg\n        (@Turing.TM2ComputableAux.tm Γα Γγ\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ (@Computability.Encoding.encode.{0, 0} α Γα ea)\n            (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n            (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n              (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r s))\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n              (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r s))\n              (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                  s))))))\n      (Turing.FinTM2.step\n        (@Turing.TM2ComputableAux.tm Γα Γγ\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ (@Computability.Encoding.encode.{0, 0} α Γα ea)\n            (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n            (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n              (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r s))\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n              (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r s))\n              (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                  s))))))\n      (Turing.initList\n        (@Turing.TM2ComputableAux.tm Γα Γγ\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ (@Computability.Encoding.encode.{0, 0} α Γα ea)\n            (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n            (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n              (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r s))\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n              (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r s))\n              (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                  s)))))\n        (@List.map.{0, 0} Γα\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Γα Γγ\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                  (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                    s))\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                  (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                    (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                      s))\n                  (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                    (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                      s)))))\n            (Turing.FinTM2.k₀\n              (@Turing.TM2ComputableAux.tm Γα Γγ\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                  (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                  (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                    (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                      s))\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                    (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))\n                    (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s)))))))\n          (@Equiv.invFun.{1, 1}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Γα Γγ\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                  (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                  (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                    (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                      s))\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                    (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))\n                    (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s)))))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Γα Γγ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                    (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                    (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                      (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s))\n                      (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s)))))))\n            Γα\n            (@Turing.TM2ComputableAux.inputAlphabet Γα Γγ\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                  (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                    s))\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                  (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                    (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                      s))\n                  (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                    (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                      s))))))\n          (@Computability.Encoding.encode.{0, 0} α Γα ea a)))\n      (@Option.map.{0, 0}\n        (List.{0}\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Γα Γγ\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                  (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                    s))\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                  (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                    (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                      s))\n                  (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                    (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                      s)))))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Γα Γγ\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                  (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                  (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                    (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                      s))\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                    (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))\n                    (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))))))))\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Γα Γγ\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n              (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n              (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r s))\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                  (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                    s))\n                (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                  (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                    s))))))\n        (Turing.haltList\n          (@Turing.TM2ComputableAux.tm Γα Γγ\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n              (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n              (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r s))\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                  (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                    s))\n                (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                  (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                    s))))))\n        (@Option.some.{0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Γα Γγ\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                  (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                  (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                    (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                      s))\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                    (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))\n                    (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s)))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Γα Γγ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                    (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                    (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                      (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s))\n                      (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s))))))))\n          (@List.map.{0, 0} Γγ\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Γα Γγ\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                  (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                  (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                    (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                      s))\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                    (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))\n                    (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s)))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Γα Γγ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                    (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                    (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                      (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s))\n                      (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s)))))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γα Γγ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                    (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                    (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                      (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s))\n                      (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s)))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Γα Γγ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                      (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                      (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s))\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                        (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                          (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f\n                            g h r s))\n                        (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                          (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f\n                            g h r s)))))))\n              Γγ\n              (@Turing.TM2ComputableAux.outputAlphabet Γα Γγ\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                  (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                  (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                    (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                      s))\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                    (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))\n                    (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))))))\n            (@Computability.Encoding.encode.{0, 0} γ Γγ ec\n              (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r s)\n                a)))))\n      (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Γα Γγ\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n              (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n              (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r s))\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                  (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                    s))\n                (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                  (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                    s))))))\n        (Turing.FinTM2.step\n          (@Turing.TM2ComputableAux.tm Γα Γγ\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n              (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n              (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r s))\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                  (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                    s))\n                (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                  (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                    s))))))\n        (Turing.initList\n          (@Turing.TM2ComputableAux.tm Γα Γγ\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n              (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n              (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r s))\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                  (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                    s))\n                (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                  (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                    s)))))\n          (@List.map.{0, 0} Γα\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Γα Γγ\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                  (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                  (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                    (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                      s))\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                    (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))\n                    (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s)))))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Γα Γγ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                    (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                    (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                      (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s))\n                      (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s)))))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γα Γγ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                    (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                    (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                      (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s))\n                      (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s)))))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Γα Γγ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                      (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                      (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s))\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                        (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                          (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f\n                            g h r s))\n                        (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                          (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f\n                            g h r s)))))))\n              Γα\n              (@Turing.TM2ComputableAux.inputAlphabet Γα Γγ\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                  (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                  (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                    (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                      s))\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                    (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))\n                    (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))))))\n            (@Computability.Encoding.encode.{0, 0} α Γα ea a)))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Γα Γγ\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                  (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                  (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                    (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                      s))\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                    (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))\n                    (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s)))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Γα Γγ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                    (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                    (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                      (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s))\n                      (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s))))))))\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Γα Γγ\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                  (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                    s))\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                  (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                    (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                      s))\n                  (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                    (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                      s))))))\n          (Turing.haltList\n            (@Turing.TM2ComputableAux.tm Γα Γγ\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                  (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                    s))\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                  (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                    (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                      s))\n                  (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                    (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                      s))))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γα Γγ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                    (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                    (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                      (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s))\n                      (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s)))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Γα Γγ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                      (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                      (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s))\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                        (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                          (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f\n                            g h r s))\n                        (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                          (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f\n                            g h r s))))))))\n            (@List.map.{0, 0} Γγ\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γα Γγ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                    (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                    (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                      (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s))\n                      (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s)))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Γα Γγ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                      (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                      (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s))\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                        (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                          (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f\n                            g h r s))\n                        (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                          (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f\n                            g h r s)))))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Γα Γγ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                      (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                      (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s))\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                        (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                          (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f\n                            g h r s))\n                        (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                          (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f\n                            g h r s)))))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Γα Γγ\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                        (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                        (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                          (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f\n                            g h r s))\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                          (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                            (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec\n                              f g h r s))\n                          (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                            (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec\n                              f g h r s)))))))\n                Γγ\n                (@Turing.TM2ComputableAux.outputAlphabet Γα Γγ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γα Γγ\n                    (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                    (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                      (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h\n                        r s))\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n                      (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s))\n                      (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                        (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g\n                          h r s))))))\n              (@Computability.Encoding.encode.{0, 0} γ Γγ ec\n                (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                  (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                    s)\n                  a)))))\n        (@Polynomial.eval.{0} Nat Nat.instSemiring\n          (@List.length.{0} Γα (@Computability.Encoding.encode.{0, 0} α Γα ea a))\n          (@Turing.TM2ComputableInPolyTime.time α γ Γα Γγ (@Computability.Encoding.encode.{0, 0} α Γα ea)\n            (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n            (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n              (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r s))\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n              (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n                (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r s))\n              (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n                (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r\n                  s)))))\n        (@Turing.TM2ComputableInPolyTime.outputsFun α γ Γα Γγ (@Computability.Encoding.encode.{0, 0} α Γα ea)\n          (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n          (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n            (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r s))\n          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γα Γγ inst inst_2 ea ec\n            (@Counting.Complexity.ParsimoniousReduction.map α γ Γα Γγ inst inst_2 ea ec f h\n              (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r s))\n            (@Counting.Complexity.ParsimoniousReduction.machine α γ Γα Γγ inst inst_2 ea ec f h\n              (@Counting.Complexity.ParsimoniousReduction.trans α β γ Γα Γβ Γγ inst inst_1 inst_2 ea eb ec f g h r s)))\n          a)))\n    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n      (@StateTransition.EvalsTo.steps.{0}\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Γβ Γγ\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n              (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n              (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s)))))\n        (Turing.FinTM2.step\n          (@Turing.TM2ComputableAux.tm Γβ Γγ\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n              (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n              (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s)))))\n        (Turing.initList\n          (@Turing.TM2ComputableAux.tm Γβ Γγ\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n              (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n              (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))\n          (@List.map.{0, 0} Γβ\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Γβ Γγ\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                  (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                  (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                    (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                    (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Γβ Γγ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                    (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                    (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                      (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                      (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γβ Γγ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                    (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                    (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                      (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                      (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Γβ Γγ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                      (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                      (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                        (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                        (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))))\n              Γβ\n              (@Turing.TM2ComputableAux.inputAlphabet Γβ Γγ\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                  (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                  (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                    (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                    (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s)))))\n            (@Computability.Encoding.encode.{0, 0} β Γβ eb\n              (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r a))))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Γβ Γγ\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                  (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                  (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                    (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                    (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Γβ Γγ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                    (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                    (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                      (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                      (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s)))))))\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Γβ Γγ\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                  (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                  (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s)))))\n          (Turing.haltList\n            (@Turing.TM2ComputableAux.tm Γβ Γγ\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                  (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                  (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s)))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γβ Γγ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                    (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                    (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                      (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                      (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Γβ Γγ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                      (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                      (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                        (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                        (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s)))))))\n            (@List.map.{0, 0} Γγ\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γβ Γγ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                    (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                    (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                      (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                      (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Γβ Γγ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                      (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                      (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                        (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                        (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Γβ Γγ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                      (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                      (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                        (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                        (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Γβ Γγ\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                        (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                        (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                          (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                          (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))))\n                Γγ\n                (@Turing.TM2ComputableAux.outputAlphabet Γβ Γγ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                    (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                    (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                      (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                      (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s)))))\n              (@Computability.Encoding.encode.{0, 0} γ Γγ ec\n                (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s\n                  (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r a))))))\n        (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Γβ Γγ\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                  (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                  (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s)))))\n          (Turing.FinTM2.step\n            (@Turing.TM2ComputableAux.tm Γβ Γγ\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                  (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                  (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s)))))\n          (Turing.initList\n            (@Turing.TM2ComputableAux.tm Γβ Γγ\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                  (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                  (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))\n            (@List.map.{0, 0} Γβ\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γβ Γγ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                    (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                    (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                      (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                      (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Γβ Γγ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                      (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                      (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                        (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                        (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Γβ Γγ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                      (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                      (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                        (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                        (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))\n                  (Turing.FinTM2.k₀\n                    (@Turing.TM2ComputableAux.tm Γβ Γγ\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                        (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                        (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                          (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                          (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))))\n                Γβ\n                (@Turing.TM2ComputableAux.inputAlphabet Γβ Γγ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                    (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                    (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                      (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                      (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s)))))\n              (@Computability.Encoding.encode.{0, 0} β Γβ eb\n                (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r a))))\n          (@Option.map.{0, 0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γβ Γγ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                    (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                    (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                      (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                      (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Γβ Γγ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                      (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                      (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                        (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                        (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s)))))))\n            (Turing.FinTM2.Cfg\n              (@Turing.TM2ComputableAux.tm Γβ Γγ\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                  (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                  (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                    (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                    (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s)))))\n            (Turing.haltList\n              (@Turing.TM2ComputableAux.tm Γβ Γγ\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                  (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                  (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                    (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                    (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s)))))\n            (@Option.some.{0}\n              (List.{0}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Γβ Γγ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                      (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                      (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                        (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                        (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Γβ Γγ\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                        (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                        (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                          (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                          (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s)))))))\n              (@List.map.{0, 0} Γγ\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Γβ Γγ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                      (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                      (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                        (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                        (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Γβ Γγ\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                        (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                        (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                          (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                          (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))))\n                (@Equiv.invFun.{1, 1}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Γβ Γγ\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                        (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                        (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                          (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                          (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Γβ Γγ\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                          (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                          (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                          (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                            (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                            (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h\n                              s))))))\n                  Γγ\n                  (@Turing.TM2ComputableAux.outputAlphabet Γβ Γγ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γβ Γγ\n                      (@Computability.Encoding.encode.{0, 0} β Γβ eb) (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n                      (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                        (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                        (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s)))))\n                (@Computability.Encoding.encode.{0, 0} γ Γγ ec\n                  (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s\n                    (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r a))))))\n          (@Polynomial.eval.{0} Nat Nat.instSemiring\n            (@List.length.{0} Γβ\n              (@Computability.Encoding.encode.{0, 0} β Γβ eb\n                (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r a)))\n            (@Turing.TM2ComputableInPolyTime.time β γ Γβ Γγ (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n              (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n              (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n                (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n                (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))))\n          (@Turing.TM2ComputableInPolyTime.outputsFun β γ Γβ Γγ (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n            (@Computability.Encoding.encode.{0, 0} γ Γγ ec)\n            (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γβ Γγ inst_1 inst_2 eb ec\n              (@Counting.Complexity.ParsimoniousReduction.map β γ Γβ Γγ inst_1 inst_2 eb ec g h s)\n              (@Counting.Complexity.ParsimoniousReduction.machine β γ Γβ Γγ inst_1 inst_2 eb ec g h s))\n            (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r a))))\n      (@StateTransition.EvalsTo.steps.{0}\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Γα Γβ\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n              (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n              (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r)))))\n        (Turing.FinTM2.step\n          (@Turing.TM2ComputableAux.tm Γα Γβ\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n              (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n              (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r)))))\n        (Turing.initList\n          (@Turing.TM2ComputableAux.tm Γα Γβ\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n              (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n              (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))\n          (@List.map.{0, 0} Γα\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Γα Γβ\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                  (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                  (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                    (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                    (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Γα Γβ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                    (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                    (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                      (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                      (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γα Γβ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                    (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                    (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                      (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                      (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Γα Γβ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                      (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                      (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                        (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                        (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))))\n              Γα\n              (@Turing.TM2ComputableAux.inputAlphabet Γα Γβ\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                  (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                  (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                    (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                    (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r)))))\n            (@Computability.Encoding.encode.{0, 0} α Γα ea a)))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Γα Γβ\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                  (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                  (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                    (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                    (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Γα Γβ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                    (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                    (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                      (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                      (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r)))))))\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Γα Γβ\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                  (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                  (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r)))))\n          (Turing.haltList\n            (@Turing.TM2ComputableAux.tm Γα Γβ\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                  (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                  (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r)))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γα Γβ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                    (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                    (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                      (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                      (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Γα Γβ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                      (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                      (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                        (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                        (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r)))))))\n            (@List.map.{0, 0} Γβ\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γα Γβ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                    (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                    (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                      (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                      (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Γα Γβ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                      (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                      (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                        (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                        (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Γα Γβ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                      (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                      (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                        (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                        (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Γα Γβ\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                        (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                        (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                          (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                          (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))))\n                Γβ\n                (@Turing.TM2ComputableAux.outputAlphabet Γα Γβ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                    (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                    (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                      (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                      (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r)))))\n              (@Computability.Encoding.encode.{0, 0} β Γβ eb\n                (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r a)))))\n        (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Γα Γβ\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                  (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                  (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r)))))\n          (Turing.FinTM2.step\n            (@Turing.TM2ComputableAux.tm Γα Γβ\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                  (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                  (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r)))))\n          (Turing.initList\n            (@Turing.TM2ComputableAux.tm Γα Γβ\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                  (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                  (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))\n            (@List.map.{0, 0} Γα\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γα Γβ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                    (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                    (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                      (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                      (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Γα Γβ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                      (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                      (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                        (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                        (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Γα Γβ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                      (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                      (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                        (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                        (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))\n                  (Turing.FinTM2.k₀\n                    (@Turing.TM2ComputableAux.tm Γα Γβ\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                        (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                        (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                          (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                          (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))))\n                Γα\n                (@Turing.TM2ComputableAux.inputAlphabet Γα Γβ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                    (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                    (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                      (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                      (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r)))))\n              (@Computability.Encoding.encode.{0, 0} α Γα ea a)))\n          (@Option.map.{0, 0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γα Γβ\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                    (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                    (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                      (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                      (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Γα Γβ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                      (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                      (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                        (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                        (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r)))))))\n            (Turing.FinTM2.Cfg\n              (@Turing.TM2ComputableAux.tm Γα Γβ\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                  (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                  (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                    (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                    (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r)))))\n            (Turing.haltList\n              (@Turing.TM2ComputableAux.tm Γα Γβ\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                  (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                  (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                    (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                    (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r)))))\n            (@Option.some.{0}\n              (List.{0}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Γα Γβ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                      (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                      (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                        (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                        (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Γα Γβ\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                        (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                        (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                          (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                          (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r)))))))\n              (@List.map.{0, 0} Γβ\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Γα Γβ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                      (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                      (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                        (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                        (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Γα Γβ\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                        (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                        (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                          (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                          (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))))\n                (@Equiv.invFun.{1, 1}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Γα Γβ\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                        (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                        (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                          (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                          (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Γα Γβ\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                          (@Computability.Encoding.encode.{0, 0} α Γα ea)\n                          (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                          (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                            (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                            (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))))\n                  Γβ\n                  (@Turing.TM2ComputableAux.outputAlphabet Γα Γβ\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γα Γβ\n                      (@Computability.Encoding.encode.{0, 0} α Γα ea) (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n                      (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                        (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                        (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r)))))\n                (@Computability.Encoding.encode.{0, 0} β Γβ eb\n                  (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r a)))))\n          (@Polynomial.eval.{0} Nat Nat.instSemiring\n            (@List.length.{0} Γα (@Computability.Encoding.encode.{0, 0} α Γα ea a))\n            (@Turing.TM2ComputableInPolyTime.time α β Γα Γβ (@Computability.Encoding.encode.{0, 0} α Γα ea)\n              (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n              (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n                (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n                (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))))\n          (@Turing.TM2ComputableInPolyTime.outputsFun α β Γα Γβ (@Computability.Encoding.encode.{0, 0} α Γα ea)\n            (@Computability.Encoding.encode.{0, 0} β Γβ eb)\n            (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γα Γβ inst inst_1 ea eb\n              (@Counting.Complexity.ParsimoniousReduction.map α β Γα Γβ inst inst_1 ea eb f g r)\n              (@Counting.Complexity.ParsimoniousReduction.machine α β Γα Γβ inst inst_1 ea eb f g r))\n            a))))"},{"category":"core","display_name":"Counting.Complexity.SharpPWitness","family":"core-sharpp","import":"Counting.Complexity.SharpP","kind":"inductive","module":"Counting.Complexity.SharpP","name":"Counting.Complexity.SharpPWitness","readable_type":"{α Γ : Type} → [Fintype Γ] → Computability.Encoding α Γ → (α → Nat) → Type 1","role":"inductive","source_line":24,"source_path":"projects/foundations/Counting/Complexity/SharpP.lean","source_sha256":"c386d7ad99a06216a999fa3355492cb1220fe6d8ca4656d83458b2e7df41508a","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Complexity/SharpP.lean#L24","summary":"A natural-valued counting function represented by a polynomial-length Boolean witness and a concrete polynomial-time finite machine. The machine's time is measured on the full encoded pair, not just its instance component.","type":"{α Γ : Type} → [Fintype.{0} Γ] → (ea : Computability.Encoding.{0, 0} α Γ) → (f : α → Nat) → Type 1"},{"category":"core","display_name":"Counting.Complexity.SharpPWitness.count_le","family":"core-sharpp","import":"Counting.Complexity.SharpP","kind":"theorem","module":"Counting.Complexity.SharpP","name":"Counting.Complexity.SharpPWitness.count_le","readable_type":"∀ {α Γ : Type} [inst : Fintype Γ] {ea : Computability.Encoding α Γ} {f : α → Nat}\n  (w : Counting.Complexity.SharpPWitness ea f) (a : α),\n  instLENat.le (f a) (instHPow.hPow 2 (Polynomial.eval (ea.encode a).length w.witnessLength))","role":"theorem","source_line":40,"source_path":"projects/foundations/Counting/Complexity/SharpP.lean","source_sha256":"c386d7ad99a06216a999fa3355492cb1220fe6d8ca4656d83458b2e7df41508a","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Complexity/SharpP.lean#L40","summary":"There are at most as many accepted witnesses as Boolean strings of the exact polynomial length.","type":"∀ {α Γ : Type} [inst : Fintype.{0} Γ] {ea : Computability.Encoding.{0, 0} α Γ} {f : α → Nat}\n  (w : @Counting.Complexity.SharpPWitness α Γ inst ea f) (a : α),\n  @LE.le.{0} Nat instLENat (f a)\n    (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n      (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n      (@Polynomial.eval.{0} Nat Nat.instSemiring (@List.length.{0} Γ (@Computability.Encoding.encode.{0, 0} α Γ ea a))\n        (@Counting.Complexity.SharpPWitness.witnessLength α Γ inst ea f w)))"},{"category":"core","display_name":"Counting.Complexity.one_inSharpP","family":"core-sharpp","import":"Counting.Complexity.SharpP","kind":"theorem","module":"Counting.Complexity.SharpP","name":"Counting.Complexity.one_inSharpP","readable_type":"∀ {α Γ : Type} [inst : Fintype Γ] (ea : Computability.Encoding α Γ), Counting.Complexity.InSharpP ea fun x => 1","role":"theorem","source_line":79,"source_path":"projects/foundations/Counting/Complexity/SharpP.lean","source_sha256":"c386d7ad99a06216a999fa3355492cb1220fe6d8ca4656d83458b2e7df41508a","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Complexity/SharpP.lean#L79","summary":"An accepting verifier with no witness bits counts the unique empty witness.","type":"∀ {α Γ : Type} [inst : Fintype.{0} Γ] (ea : Computability.Encoding.{0, 0} α Γ),\n  @Counting.Complexity.InSharpP α Γ inst ea fun (x : α) => @OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))"},{"category":"core","display_name":"Counting.Complexity.zero_inSharpP","family":"core-sharpp","import":"Counting.Complexity.SharpP","kind":"theorem","module":"Counting.Complexity.SharpP","name":"Counting.Complexity.zero_inSharpP","readable_type":"∀ {α Γ : Type} [inst : Fintype Γ] (ea : Computability.Encoding α Γ), Counting.Complexity.InSharpP ea fun x => 0","role":"theorem","source_line":75,"source_path":"projects/foundations/Counting/Complexity/SharpP.lean","source_sha256":"c386d7ad99a06216a999fa3355492cb1220fe6d8ca4656d83458b2e7df41508a","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Complexity/SharpP.lean#L75","summary":"Zero insharpp.","type":"∀ {α Γ : Type} [inst : Fintype.{0} Γ] (ea : Computability.Encoding.{0, 0} α Γ),\n  @Counting.Complexity.InSharpP α Γ inst ea fun (x : α) => @OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))"},{"category":"core","display_name":"Counting.Computation.InFP","family":"core-polytime","import":"Counting.Computation.PolyTime","kind":"definition","module":"Counting.Computation.PolyTime","name":"Counting.Computation.InFP","readable_type":"{α β Γ₀ Γ₁ : Type} →\n  [Fintype Γ₀] → [Fintype Γ₁] → Computability.Encoding α Γ₀ → Computability.Encoding β Γ₁ → (α → β) → Prop","role":"definition","source_line":23,"source_path":"projects/foundations/Counting/Computation/PolyTime.lean","source_sha256":"fd864c8839670e187e46e0bd5a463b77c62f2f4284da82e172f1ac24b0fcc68e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Computation/PolyTime.lean#L23","summary":"Existence of a concrete polynomial-time finite-machine implementation.","type":"{α β Γ₀ Γ₁ : Type} →\n  [Fintype.{0} Γ₀] →\n    [Fintype.{0} Γ₁] →\n      (ea : Computability.Encoding.{0, 0} α Γ₀) → (eb : Computability.Encoding.{0, 0} β Γ₁) → (f : α → β) → Prop"},{"category":"core","display_name":"Counting.Computation.PolyTime","family":"core-polytime","import":"Counting.Computation.PolyTime","kind":"definition","module":"Counting.Computation.PolyTime","name":"Counting.Computation.PolyTime","readable_type":"{α β Γ₀ Γ₁ : Type} →\n  [Fintype Γ₀] → [Fintype Γ₁] → Computability.Encoding α Γ₀ → Computability.Encoding β Γ₁ → (α → β) → Type 1","role":"definition","source_line":18,"source_path":"projects/foundations/Counting/Computation/PolyTime.lean","source_sha256":"fd864c8839670e187e46e0bd5a463b77c62f2f4284da82e172f1ac24b0fcc68e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Computation/PolyTime.lean#L18","summary":"A concrete finite-control TM2 computer with finite alphabets on every stack, faithful external encodings, and a proved natural-coefficient time polynomial.","type":"{α β Γ₀ Γ₁ : Type} →\n  [Fintype.{0} Γ₀] →\n    [Fintype.{0} Γ₁] →\n      (ea : Computability.Encoding.{0, 0} α Γ₀) → (eb : Computability.Encoding.{0, 0} β Γ₁) → (f : α → β) → Type 1"},{"category":"core","display_name":"Counting.Computation.PolyTime.comp","family":"core-polytime","import":"Counting.Computation.PolyTime","kind":"definition","module":"Counting.Computation.PolyTime","name":"Counting.Computation.PolyTime.comp","readable_type":"{α β γ Γ₀ Γ₁ Γ₂ : Type} →\n  [inst : Fintype Γ₀] →\n    [inst_1 : Fintype Γ₁] →\n      [inst_2 : Fintype Γ₂] →\n        {ea : Computability.Encoding α Γ₀} →\n          {eb : Computability.Encoding β Γ₁} →\n            {ec : Computability.Encoding γ Γ₂} →\n              {f : α → β} →\n                {g : β → γ} →\n                  Counting.Computation.PolyTime ea eb f →\n                    Counting.Computation.PolyTime eb ec g → Counting.Computation.PolyTime ea ec (Function.comp g f)","role":"definition","source_line":50,"source_path":"projects/foundations/Counting/Computation/PolyTime.lean","source_sha256":"fd864c8839670e187e46e0bd5a463b77c62f2f4284da82e172f1ac24b0fcc68e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Computation/PolyTime.lean#L50","summary":"Compile two genuine finite machines into one. The first output and the second input share a stack; the compiler proves the intermediate handoff and exact final configuration, and derives the composed polynomial from an output-length bound.","type":"{α β γ Γ₀ Γ₁ Γ₂ : Type} →\n  [inst : Fintype.{0} Γ₀] →\n    [inst_1 : Fintype.{0} Γ₁] →\n      [inst_2 : Fintype.{0} Γ₂] →\n        {ea : Computability.Encoding.{0, 0} α Γ₀} →\n          {eb : Computability.Encoding.{0, 0} β Γ₁} →\n            {ec : Computability.Encoding.{0, 0} γ Γ₂} →\n              {f : α → β} →\n                {g : β → γ} →\n                  (hf : @Counting.Computation.PolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f) →\n                    (hg : @Counting.Computation.PolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g) →\n                      @Counting.Computation.PolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec (@Function.comp.{1, 1, 1} α β γ g f)"},{"category":"core","display_name":"Counting.Computation.PolyTime.comp_steps","family":"core-polytime","import":"Counting.Computation.PolyTime","kind":"theorem","module":"Counting.Computation.PolyTime","name":"Counting.Computation.PolyTime.comp_steps","readable_type":"∀ {α β γ Γ₀ Γ₁ Γ₂ : Type} [inst : Fintype Γ₀] [inst_1 : Fintype Γ₁] [inst_2 : Fintype Γ₂]\n  {ea : Computability.Encoding α Γ₀} {eb : Computability.Encoding β Γ₁} {ec : Computability.Encoding γ Γ₂} {f : α → β}\n  {g : β → γ} (hf : Counting.Computation.PolyTime ea eb f) (hg : Counting.Computation.PolyTime eb ec g) (a : α),\n  Eq ((hf.comp hg).outputsFun a).steps (instHAdd.hAdd (hg.outputsFun (f a)).steps (hf.outputsFun a).steps)","role":"theorem","source_line":66,"source_path":"projects/foundations/Counting/Computation/PolyTime.lean","source_sha256":"fd864c8839670e187e46e0bd5a463b77c62f2f4284da82e172f1ac24b0fcc68e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Computation/PolyTime.lean#L66","summary":"The constructed execution contains exactly the two original transition counts.","type":"∀ {α β γ Γ₀ Γ₁ Γ₂ : Type} [inst : Fintype.{0} Γ₀] [inst_1 : Fintype.{0} Γ₁] [inst_2 : Fintype.{0} Γ₂]\n  {ea : Computability.Encoding.{0, 0} α Γ₀} {eb : Computability.Encoding.{0, 0} β Γ₁}\n  {ec : Computability.Encoding.{0, 0} γ Γ₂} {f : α → β} {g : β → γ}\n  (hf : @Counting.Computation.PolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f)\n  (hg : @Counting.Computation.PolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g) (a : α),\n  @Eq.{1} Nat\n    (@StateTransition.EvalsTo.steps.{0}\n      (Turing.FinTM2.Cfg\n        (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂ (@Computability.Encoding.encode.{0, 0} α Γ₀ ea)\n            (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) (@Function.comp.{1, 1, 1} α β γ g f)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n              (@Function.comp.{1, 1, 1} α β γ g f)\n              (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg)))))\n      (Turing.FinTM2.step\n        (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂ (@Computability.Encoding.encode.{0, 0} α Γ₀ ea)\n            (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) (@Function.comp.{1, 1, 1} α β γ g f)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n              (@Function.comp.{1, 1, 1} α β γ g f)\n              (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg)))))\n      (Turing.initList\n        (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂ (@Computability.Encoding.encode.{0, 0} α Γ₀ ea)\n            (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) (@Function.comp.{1, 1, 1} α β γ g f)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n              (@Function.comp.{1, 1, 1} α β γ g f)\n              (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))\n        (@List.map.{0, 0} Γ₀\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                (@Function.comp.{1, 1, 1} α β γ g f)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                  (@Function.comp.{1, 1, 1} α β γ g f)\n                  (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))\n            (Turing.FinTM2.k₀\n              (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                  (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                  (@Function.comp.{1, 1, 1} α β γ g f)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                    (@Function.comp.{1, 1, 1} α β γ g f)\n                    (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))))\n          (@Equiv.invFun.{1, 1}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                  (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                  (@Function.comp.{1, 1, 1} α β γ g f)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                    (@Function.comp.{1, 1, 1} α β γ g f)\n                    (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                    (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                    (@Function.comp.{1, 1, 1} α β γ g f)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                      (@Function.comp.{1, 1, 1} α β γ g f)\n                      (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))))\n            Γ₀\n            (@Turing.TM2ComputableAux.inputAlphabet Γ₀ Γ₂\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                (@Function.comp.{1, 1, 1} α β γ g f)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                  (@Function.comp.{1, 1, 1} α β γ g f)\n                  (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg)))))\n          (@Computability.Encoding.encode.{0, 0} α Γ₀ ea a)))\n      (@Option.map.{0, 0}\n        (List.{0}\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                (@Function.comp.{1, 1, 1} α β γ g f)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                  (@Function.comp.{1, 1, 1} α β γ g f)\n                  (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                  (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                  (@Function.comp.{1, 1, 1} α β γ g f)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                    (@Function.comp.{1, 1, 1} α β γ g f)\n                    (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg)))))))\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n              (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n              (@Function.comp.{1, 1, 1} α β γ g f)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                (@Function.comp.{1, 1, 1} α β γ g f)\n                (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg)))))\n        (Turing.haltList\n          (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n              (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n              (@Function.comp.{1, 1, 1} α β γ g f)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                (@Function.comp.{1, 1, 1} α β γ g f)\n                (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg)))))\n        (@Option.some.{0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                  (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                  (@Function.comp.{1, 1, 1} α β γ g f)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                    (@Function.comp.{1, 1, 1} α β γ g f)\n                    (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                    (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                    (@Function.comp.{1, 1, 1} α β γ g f)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                      (@Function.comp.{1, 1, 1} α β γ g f)\n                      (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg)))))))\n          (@List.map.{0, 0} Γ₂\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                  (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                  (@Function.comp.{1, 1, 1} α β γ g f)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                    (@Function.comp.{1, 1, 1} α β γ g f)\n                    (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                    (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                    (@Function.comp.{1, 1, 1} α β γ g f)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                      (@Function.comp.{1, 1, 1} α β γ g f)\n                      (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                    (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                    (@Function.comp.{1, 1, 1} α β γ g f)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                      (@Function.comp.{1, 1, 1} α β γ g f)\n                      (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                      (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                      (@Function.comp.{1, 1, 1} α β γ g f)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                        (@Function.comp.{1, 1, 1} α β γ g f)\n                        (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))))\n              Γ₂\n              (@Turing.TM2ComputableAux.outputAlphabet Γ₀ Γ₂\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                  (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                  (@Function.comp.{1, 1, 1} α β γ g f)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                    (@Function.comp.{1, 1, 1} α β γ g f)\n                    (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg)))))\n            (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec (@Function.comp.{1, 1, 1} α β γ g f a)))))\n      (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n              (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n              (@Function.comp.{1, 1, 1} α β γ g f)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                (@Function.comp.{1, 1, 1} α β γ g f)\n                (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg)))))\n        (Turing.FinTM2.step\n          (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n              (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n              (@Function.comp.{1, 1, 1} α β γ g f)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                (@Function.comp.{1, 1, 1} α β γ g f)\n                (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg)))))\n        (Turing.initList\n          (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n              (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n              (@Function.comp.{1, 1, 1} α β γ g f)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                (@Function.comp.{1, 1, 1} α β γ g f)\n                (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))\n          (@List.map.{0, 0} Γ₀\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                  (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                  (@Function.comp.{1, 1, 1} α β γ g f)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                    (@Function.comp.{1, 1, 1} α β γ g f)\n                    (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                    (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                    (@Function.comp.{1, 1, 1} α β γ g f)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                      (@Function.comp.{1, 1, 1} α β γ g f)\n                      (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                    (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                    (@Function.comp.{1, 1, 1} α β γ g f)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                      (@Function.comp.{1, 1, 1} α β γ g f)\n                      (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                      (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                      (@Function.comp.{1, 1, 1} α β γ g f)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                        (@Function.comp.{1, 1, 1} α β γ g f)\n                        (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))))\n              Γ₀\n              (@Turing.TM2ComputableAux.inputAlphabet Γ₀ Γ₂\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                  (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                  (@Function.comp.{1, 1, 1} α β γ g f)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                    (@Function.comp.{1, 1, 1} α β γ g f)\n                    (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg)))))\n            (@Computability.Encoding.encode.{0, 0} α Γ₀ ea a)))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                  (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                  (@Function.comp.{1, 1, 1} α β γ g f)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                    (@Function.comp.{1, 1, 1} α β γ g f)\n                    (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                    (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                    (@Function.comp.{1, 1, 1} α β γ g f)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                      (@Function.comp.{1, 1, 1} α β γ g f)\n                      (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg)))))))\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                (@Function.comp.{1, 1, 1} α β γ g f)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                  (@Function.comp.{1, 1, 1} α β γ g f)\n                  (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg)))))\n          (Turing.haltList\n            (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                (@Function.comp.{1, 1, 1} α β γ g f)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                  (@Function.comp.{1, 1, 1} α β γ g f)\n                  (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg)))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                    (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                    (@Function.comp.{1, 1, 1} α β γ g f)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                      (@Function.comp.{1, 1, 1} α β γ g f)\n                      (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                      (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                      (@Function.comp.{1, 1, 1} α β γ g f)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                        (@Function.comp.{1, 1, 1} α β γ g f)\n                        (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg)))))))\n            (@List.map.{0, 0} Γ₂\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                    (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                    (@Function.comp.{1, 1, 1} α β γ g f)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                      (@Function.comp.{1, 1, 1} α β γ g f)\n                      (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                      (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                      (@Function.comp.{1, 1, 1} α β γ g f)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                        (@Function.comp.{1, 1, 1} α β γ g f)\n                        (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                      (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                      (@Function.comp.{1, 1, 1} α β γ g f)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                        (@Function.comp.{1, 1, 1} α β γ g f)\n                        (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Γ₀ Γ₂\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                        (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                        (@Function.comp.{1, 1, 1} α β γ g f)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                          (@Function.comp.{1, 1, 1} α β γ g f)\n                          (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf\n                            hg))))))\n                Γ₂\n                (@Turing.TM2ComputableAux.outputAlphabet Γ₀ Γ₂\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α γ Γ₀ Γ₂\n                    (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                    (@Function.comp.{1, 1, 1} α β γ g f)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n                      (@Function.comp.{1, 1, 1} α β γ g f)\n                      (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg)))))\n              (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec (@Function.comp.{1, 1, 1} α β γ g f a)))))\n        (@Polynomial.eval.{0} Nat Nat.instSemiring\n          (@List.length.{0} Γ₀ (@Computability.Encoding.encode.{0, 0} α Γ₀ ea a))\n          (@Turing.TM2ComputableInPolyTime.time α γ Γ₀ Γ₂ (@Computability.Encoding.encode.{0, 0} α Γ₀ ea)\n            (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) (@Function.comp.{1, 1, 1} α β γ g f)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n              (@Function.comp.{1, 1, 1} α β γ g f)\n              (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))))\n        (@Turing.TM2ComputableInPolyTime.outputsFun α γ Γ₀ Γ₂ (@Computability.Encoding.encode.{0, 0} α Γ₀ ea)\n          (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) (@Function.comp.{1, 1, 1} α β γ g f)\n          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α γ Γ₀ Γ₂ inst inst_2 ea ec\n            (@Function.comp.{1, 1, 1} α β γ g f)\n            (@Counting.Computation.PolyTime.comp α β γ Γ₀ Γ₁ Γ₂ inst inst_1 inst_2 ea eb ec f g hf hg))\n          a)))\n    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n      (@StateTransition.EvalsTo.steps.{0}\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n              (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg))))\n        (Turing.FinTM2.step\n          (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n              (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg))))\n        (Turing.initList\n          (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n              (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))\n          (@List.map.{0, 0} Γ₁\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                  (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                    (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                    (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                      (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))))\n              Γ₁\n              (@Turing.TM2ComputableAux.inputAlphabet Γ₁ Γ₂\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                  (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg))))\n            (@Computability.Encoding.encode.{0, 0} β Γ₁ eb (f a))))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                  (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                    (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg))))))\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg))))\n          (Turing.haltList\n            (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                    (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                      (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg))))))\n            (@List.map.{0, 0} Γ₂\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                    (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                      (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                      (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                        (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                        g (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))))\n                Γ₂\n                (@Turing.TM2ComputableAux.outputAlphabet Γ₁ Γ₂\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                    (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg))))\n              (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec (g (f a))))))\n        (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg))))\n          (Turing.FinTM2.step\n            (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg))))\n          (Turing.initList\n            (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))\n            (@List.map.{0, 0} Γ₁\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                    (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                      (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                      (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))\n                  (Turing.FinTM2.k₀\n                    (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                        (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                        g (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))))\n                Γ₁\n                (@Turing.TM2ComputableAux.inputAlphabet Γ₁ Γ₂\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                    (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg))))\n              (@Computability.Encoding.encode.{0, 0} β Γ₁ eb (f a))))\n          (@Option.map.{0, 0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                    (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                      (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg))))))\n            (Turing.FinTM2.Cfg\n              (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                  (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg))))\n            (Turing.haltList\n              (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                  (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg))))\n            (@Option.some.{0}\n              (List.{0}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                      (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                        (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                        g\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg))))))\n              (@List.map.{0, 0} Γ₂\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                      (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                        (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                        g (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))))\n                (@Equiv.invFun.{1, 1}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                        (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec)\n                        g (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Γ₁ Γ₂\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                          (@Computability.Encoding.encode.{0, 0} β Γ₁ eb)\n                          (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))))\n                  Γ₂\n                  (@Turing.TM2ComputableAux.outputAlphabet Γ₁ Γ₂\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux β γ Γ₁ Γ₂\n                      (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg))))\n                (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec (g (f a))))))\n          (@Polynomial.eval.{0} Nat Nat.instSemiring\n            (@List.length.{0} Γ₁ (@Computability.Encoding.encode.{0, 0} β Γ₁ eb (f a)))\n            (@Turing.TM2ComputableInPolyTime.time β γ Γ₁ Γ₂ (@Computability.Encoding.encode.{0, 0} β Γ₁ eb)\n              (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg)))\n          (@Turing.TM2ComputableInPolyTime.outputsFun β γ Γ₁ Γ₂ (@Computability.Encoding.encode.{0, 0} β Γ₁ eb)\n            (@Computability.Encoding.encode.{0, 0} γ Γ₂ ec) g\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime β γ Γ₁ Γ₂ inst_1 inst_2 eb ec g hg) (f a))))\n      (@StateTransition.EvalsTo.steps.{0}\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n              (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf))))\n        (Turing.FinTM2.step\n          (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n              (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf))))\n        (Turing.initList\n          (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n              (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))\n          (@List.map.{0, 0} Γ₀\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                  (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                    (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                    (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                      (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))))\n              Γ₀\n              (@Turing.TM2ComputableAux.inputAlphabet Γ₀ Γ₁\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                  (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf))))\n            (@Computability.Encoding.encode.{0, 0} α Γ₀ ea a)))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                  (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                    (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf))))))\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf))))\n          (Turing.haltList\n            (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                    (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                      (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf))))))\n            (@List.map.{0, 0} Γ₁\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                    (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                      (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                      (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                        (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb)\n                        f (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))))\n                Γ₁\n                (@Turing.TM2ComputableAux.outputAlphabet Γ₀ Γ₁\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                    (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf))))\n              (@Computability.Encoding.encode.{0, 0} β Γ₁ eb (f a)))))\n        (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf))))\n          (Turing.FinTM2.step\n            (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf))))\n          (Turing.initList\n            (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))\n            (@List.map.{0, 0} Γ₀\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                    (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                      (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                      (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))\n                  (Turing.FinTM2.k₀\n                    (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                        (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb)\n                        f (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))))\n                Γ₀\n                (@Turing.TM2ComputableAux.inputAlphabet Γ₀ Γ₁\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                    (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf))))\n              (@Computability.Encoding.encode.{0, 0} α Γ₀ ea a)))\n          (@Option.map.{0, 0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                    (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                      (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf))))))\n            (Turing.FinTM2.Cfg\n              (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                  (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf))))\n            (Turing.haltList\n              (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                  (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf))))\n            (@Option.some.{0}\n              (List.{0}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                      (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                        (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb)\n                        f (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf))))))\n              (@List.map.{0, 0} Γ₁\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                      (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                        (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb)\n                        f (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))))\n                (@Equiv.invFun.{1, 1}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                        (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb)\n                        f (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Γ₀ Γ₁\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                          (@Computability.Encoding.encode.{0, 0} α Γ₀ ea)\n                          (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))))\n                  Γ₁\n                  (@Turing.TM2ComputableAux.outputAlphabet Γ₀ Γ₁\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux α β Γ₀ Γ₁\n                      (@Computability.Encoding.encode.{0, 0} α Γ₀ ea) (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf))))\n                (@Computability.Encoding.encode.{0, 0} β Γ₁ eb (f a)))))\n          (@Polynomial.eval.{0} Nat Nat.instSemiring\n            (@List.length.{0} Γ₀ (@Computability.Encoding.encode.{0, 0} α Γ₀ ea a))\n            (@Turing.TM2ComputableInPolyTime.time α β Γ₀ Γ₁ (@Computability.Encoding.encode.{0, 0} α Γ₀ ea)\n              (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf)))\n          (@Turing.TM2ComputableInPolyTime.outputsFun α β Γ₀ Γ₁ (@Computability.Encoding.encode.{0, 0} α Γ₀ ea)\n            (@Computability.Encoding.encode.{0, 0} β Γ₁ eb) f\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f hf) a))))"},{"category":"core","display_name":"Counting.Computation.PolyTime.encoded_output_length_le","family":"core-polytime","import":"Counting.Computation.PolyTime","kind":"theorem","module":"Counting.Computation.PolyTime","name":"Counting.Computation.PolyTime.encoded_output_length_le","readable_type":"∀ {α β Γ₀ Γ₁ : Type} [inst : Fintype Γ₀] [inst_1 : Fintype Γ₁] {ea : Computability.Encoding α Γ₀}\n  {eb : Computability.Encoding β Γ₁} {f : α → β} (hf : Counting.Computation.PolyTime ea eb f) (a : α),\n  instLENat.le (eb.encode (f a)).length (Polynomial.eval (ea.encode a).length hf.outputLengthPolynomial)","role":"theorem","source_line":43,"source_path":"projects/foundations/Counting/Computation/PolyTime.lean","source_sha256":"fd864c8839670e187e46e0bd5a463b77c62f2f4284da82e172f1ac24b0fcc68e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Computation/PolyTime.lean#L43","summary":"Materializing an encoded output is charged to the running time and the constant number of pushes allowed by the finite program text.","type":"∀ {α β Γ₀ Γ₁ : Type} [inst : Fintype.{0} Γ₀] [inst_1 : Fintype.{0} Γ₁] {ea : Computability.Encoding.{0, 0} α Γ₀}\n  {eb : Computability.Encoding.{0, 0} β Γ₁} {f : α → β}\n  (hf : @Counting.Computation.PolyTime α β Γ₀ Γ₁ inst inst_1 ea eb f) (a : α),\n  @LE.le.{0} Nat instLENat (@List.length.{0} Γ₁ (@Computability.Encoding.encode.{0, 0} β Γ₁ eb (f a)))\n    (@Polynomial.eval.{0} Nat Nat.instSemiring (@List.length.{0} Γ₀ (@Computability.Encoding.encode.{0, 0} α Γ₀ ea a))\n      (@Counting.Computation.PolyTime.outputLengthPolynomial α β Γ₀ Γ₁ inst inst_1 ea eb f hf))"},{"category":"core","display_name":"Counting.CookLevin.machineReduction","family":"core-cook-levin","import":"Counting.CookLevin","kind":"definition","module":"Counting.CookLevin.Reduction","name":"Counting.CookLevin.machineReduction","readable_type":"(M : PlanarHom.SingleTapeNondeterministic.PolynomialMachine) →\n  Counting.Complexity.ParsimoniousReduction (Computability.encodingList Bool)\n    Counting.CookLevin.Instance.encoding.toFinEncoding M.count Counting.CookLevin.Instance.count","role":"definition","source_line":12,"source_path":"projects/counting-cook-levin/Counting/CookLevin/Reduction.lean","source_sha256":"63922431f3bee2b50ac7ffe8dca3d16d9e756a0e2c385555e1edf88c181a0d5d","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/counting-cook-levin/Counting/CookLevin/Reduction.lean#L12","summary":"A real finite polynomial-time machine emits every independent target field.","type":"(M : PlanarHom.SingleTapeNondeterministic.PolynomialMachine) →\n  @Counting.Complexity.ParsimoniousReduction (List.{0} Bool) Counting.CookLevin.Instance Bool Bool Bool.fintype\n    Bool.fintype (Computability.encodingList Bool)\n    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Counting.CookLevin.Instance Counting.CookLevin.Instance.encoding)\n    (PlanarHom.SingleTapeNondeterministic.PolynomialMachine.count M) Counting.CookLevin.Instance.count"},{"category":"core","display_name":"Counting.CookLevin.sharpP_reduces","family":"core-cook-levin","import":"Counting.CookLevin","kind":"theorem","module":"Counting.CookLevin.Reduction","name":"Counting.CookLevin.sharpP_reduces","readable_type":"∀ {f : PlanarHom.Complexity.Bits → Nat},\n  Counting.Complexity.InSharpP (Computability.encodingList Bool) f →\n    Counting.Complexity.ParsimoniousReduces (Computability.encodingList Bool)\n      Counting.CookLevin.Instance.encoding.toFinEncoding f Counting.CookLevin.Instance.count","role":"theorem","source_line":21,"source_path":"projects/counting-cook-levin/Counting/CookLevin/Reduction.lean","source_sha256":"63922431f3bee2b50ac7ffe8dca3d16d9e756a0e2c385555e1edf88c181a0d5d","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/counting-cook-levin/Counting/CookLevin/Reduction.lean#L21","summary":"Every standard-bit public #P function reduces parsimoniously to the same independent NOR target; its evaluator and encoding contain no source machine.","type":"∀ {f : PlanarHom.Complexity.Bits → Nat}\n  (hf : @Counting.Complexity.InSharpP (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool) f),\n  @Counting.Complexity.ParsimoniousReduces (List.{0} Bool) Counting.CookLevin.Instance Bool Bool Bool.fintype\n    Bool.fintype (Computability.encodingList Bool)\n    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Counting.CookLevin.Instance Counting.CookLevin.Instance.encoding) f\n    Counting.CookLevin.Instance.count"},{"category":"core","display_name":"Counting.CookLevin.target_inSharpP","family":"core-cook-levin","import":"Counting.CookLevin","kind":"theorem","module":"Counting.CookLevin.Membership","name":"Counting.CookLevin.target_inSharpP","readable_type":"Counting.Complexity.InSharpP Counting.CookLevin.Instance.encoding.toFinEncoding Counting.CookLevin.Instance.count","role":"theorem","source_line":55,"source_path":"projects/counting-cook-levin/Counting/CookLevin/Membership.lean","source_sha256":"47029ce8bec7dc9cc155fa269b00fab12faa156494cbd908b9292e22524b4a04","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/counting-cook-levin/Counting/CookLevin/Membership.lean#L55","summary":"Target insharpp.","type":"@Counting.Complexity.InSharpP Counting.CookLevin.Instance Bool Bool.fintype\n  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Counting.CookLevin.Instance Counting.CookLevin.Instance.encoding)\n  Counting.CookLevin.Instance.count"},{"category":"core","display_name":"Counting.Encoding.BitEncoding","family":"core-encoding","import":"Counting.Encoding.Basic","kind":"definition","module":"Counting.Encoding.Basic","name":"Counting.Encoding.BitEncoding","readable_type":"Type → Type","role":"definition","source_line":28,"source_path":"projects/foundations/Counting/Encoding/Basic.lean","source_sha256":"503906cdcf00ce03ef941b6b09a519cb1e2d50b27003f860a57d5decbf639c57","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Encoding/Basic.lean#L28","summary":"An explicit binary encoding with a checked decoding round trip. Decoder validity, normalization, and running time are separate obligations.","type":"(α : Type) → Type"},{"category":"core","display_name":"Counting.Encoding.frame","family":"core-encoding","import":"Counting.Encoding.Basic","kind":"definition","module":"Counting.Encoding.Basic","name":"Counting.Encoding.frame","readable_type":"Counting.Encoding.Bits → Counting.Encoding.Bits","role":"definition","source_line":62,"source_path":"projects/foundations/Counting/Encoding/Basic.lean","source_sha256":"503906cdcf00ce03ef941b6b09a519cb1e2d50b27003f860a57d5decbf639c57","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Encoding/Basic.lean#L62","summary":"Escape a word: every data bit is preceded by `true`, then `false` ends it.","type":"Counting.Encoding.Bits → Counting.Encoding.Bits"},{"category":"core","display_name":"Counting.Encoding.frame_injective","family":"core-encoding","import":"Counting.Encoding.Basic","kind":"theorem","module":"Counting.Encoding.Basic","name":"Counting.Encoding.frame_injective","readable_type":"Function.Injective Counting.Encoding.frame","role":"theorem","source_line":200,"source_path":"projects/foundations/Counting/Encoding/Basic.lean","source_sha256":"503906cdcf00ce03ef941b6b09a519cb1e2d50b27003f860a57d5decbf639c57","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Encoding/Basic.lean#L200","summary":"Escaping is injective even before a decoder for the payload is chosen.","type":"@Function.Injective.{1, 1} Counting.Encoding.Bits Counting.Encoding.Bits Counting.Encoding.frame"},{"category":"core","display_name":"Counting.Encoding.frame_length","family":"core-encoding","import":"Counting.Encoding.Basic","kind":"theorem","module":"Counting.Encoding.Basic","name":"Counting.Encoding.frame_length","readable_type":"∀ (a : Counting.Encoding.Bits),\n  Eq (List.length (Counting.Encoding.frame a)) (instHAdd.hAdd (instHMul.hMul 2 (List.length a)) 1)","role":"theorem","source_line":80,"source_path":"projects/foundations/Counting/Encoding/Basic.lean","source_sha256":"503906cdcf00ce03ef941b6b09a519cb1e2d50b27003f860a57d5decbf639c57","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Encoding/Basic.lean#L80","summary":"Frame length.","type":"∀ (a : Counting.Encoding.Bits),\n  @Eq.{1} Nat (@List.length.{0} Bool (Counting.Encoding.frame a))\n    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n      (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool a))\n      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))"},{"category":"core","display_name":"Counting.Encoding.unframes_frames","family":"core-encoding","import":"Counting.Encoding.Basic","kind":"theorem","module":"Counting.Encoding.Basic","name":"Counting.Encoding.unframes_frames","readable_type":"∀ (ws : List Counting.Encoding.Bits),\n  Eq (Counting.Encoding.unframes ws.length (Counting.Encoding.frames ws)) (Option.some { fst := ws, snd := List.nil })","role":"theorem","source_line":128,"source_path":"projects/foundations/Counting/Encoding/Basic.lean","source_sha256":"503906cdcf00ce03ef941b6b09a519cb1e2d50b27003f860a57d5decbf639c57","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Encoding/Basic.lean#L128","summary":"Unframes frames.","type":"∀ (ws : List.{0} Counting.Encoding.Bits),\n  @Eq.{1} (Option.{0} (Prod.{0, 0} (List.{0} Counting.Encoding.Bits) Counting.Encoding.Bits))\n    (Counting.Encoding.unframes (@List.length.{0} Counting.Encoding.Bits ws) (Counting.Encoding.frames ws))\n    (@Option.some.{0} (Prod.{0, 0} (List.{0} Counting.Encoding.Bits) (List.{0} Bool))\n      (@Prod.mk.{0, 0} (List.{0} Counting.Encoding.Bits) (List.{0} Bool) ws (@List.nil.{0} Bool)))"},{"category":"core","display_name":"Counting.Foundation.countAccepted","family":"core-foundation-witness","import":"Counting.Foundation.Witness","kind":"definition","module":"Counting.Foundation.Witness","name":"Counting.Foundation.countAccepted","readable_type":"{W : Type u_1} → [Fintype W] → (W → Bool) → Nat","role":"definition","source_line":23,"source_path":"projects/foundations/Counting/Foundation/Witness.lean","source_sha256":"445f44cef18428e489ae6a429f9d511ced71837d95a96f423655cd856cef661b","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Foundation/Witness.lean#L23","summary":"The number of accepted elements of a finite witness type.","type":"{W : Type u_1} → [Fintype.{u_1} W] → (accept : W → Bool) → Nat"},{"category":"core","display_name":"Counting.Foundation.countAccepted_eq_card","family":"core-foundation-witness","import":"Counting.Foundation.Witness","kind":"theorem","module":"Counting.Foundation.Witness","name":"Counting.Foundation.countAccepted_eq_card","readable_type":"∀ {W : Type u_1} [inst : Fintype W] (accept : W → Bool),\n  Eq (Counting.Foundation.countAccepted accept) (Fintype.card (Subtype fun w => Eq (accept w) Bool.true))","role":"theorem","source_line":28,"source_path":"projects/foundations/Counting/Foundation/Witness.lean","source_sha256":"445f44cef18428e489ae6a429f9d511ced71837d95a96f423655cd856cef661b","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Foundation/Witness.lean#L28","summary":"The finite indicator sum is exactly the cardinality of accepted witnesses. This semantic theorem is independent of machines and source-specific adapters.","type":"∀ {W : Type u_1} [inst : Fintype.{u_1} W] (accept : W → Bool),\n  @Eq.{1} Nat (@Counting.Foundation.countAccepted.{u_1} W inst accept)\n    (@Fintype.card.{u_1} (@Subtype.{u_1 + 1} W fun (w : W) => @Eq.{1} Bool (accept w) Bool.true)\n      (@Subtype.fintype.{u_1} W (fun (w : W) => @Eq.{1} Bool (accept w) Bool.true)\n        (fun (a : W) => instDecidableEqBool (accept a) Bool.true) inst))"},{"category":"core","display_name":"Counting.Foundation.countAccepted_equiv","family":"core-foundation-witness","import":"Counting.Foundation.Witness","kind":"theorem","module":"Counting.Foundation.Witness","name":"Counting.Foundation.countAccepted_equiv","readable_type":"∀ {W : Type u_1} {V : Type u_2} [inst : Fintype W] [inst_1 : Fintype V] (e : Equiv W V) (accept : V → Bool),\n  Eq (Counting.Foundation.countAccepted fun w => accept (EquivLike.toFunLike.coe e w))\n    (Counting.Foundation.countAccepted accept)","role":"theorem","source_line":54,"source_path":"projects/foundations/Counting/Foundation/Witness.lean","source_sha256":"445f44cef18428e489ae6a429f9d511ced71837d95a96f423655cd856cef661b","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Foundation/Witness.lean#L54","summary":"A parsimonious bijection preserves the number of accepted witnesses.","type":"∀ {W : Type u_1} {V : Type u_2} [inst : Fintype.{u_1} W] [inst_1 : Fintype.{u_2} V] (e : Equiv.{u_1 + 1, u_2 + 1} W V)\n  (accept : V → Bool),\n  @Eq.{1} Nat\n    (@Counting.Foundation.countAccepted.{u_1} W inst fun (w : W) =>\n      accept\n        (@DFunLike.coe.{max (u_1 + 1) (u_2 + 1), u_1 + 1, u_2 + 1} (Equiv.{u_1 + 1, u_2 + 1} W V) W (fun (x : W) => V)\n          (@EquivLike.toFunLike.{max (u_1 + 1) (u_2 + 1), u_1 + 1, u_2 + 1} (Equiv.{u_1 + 1, u_2 + 1} W V) W V\n            (@Equiv.instEquivLike.{u_1 + 1, u_2 + 1} W V))\n          e w))\n    (@Counting.Foundation.countAccepted.{u_2} V inst_1 accept)"},{"category":"core","display_name":"Counting.Foundation.countAccepted_ignored_product","family":"core-foundation-witness","import":"Counting.Foundation.Witness","kind":"theorem","module":"Counting.Foundation.Witness","name":"Counting.Foundation.countAccepted_ignored_product","readable_type":"∀ {W : Type u_1} {V : Type u_2} [inst : Fintype W] [inst_1 : Fintype V] (accept : W → Bool),\n  Eq (Counting.Foundation.countAccepted fun w => accept w.fst)\n    (instHMul.hMul (Counting.Foundation.countAccepted accept) (Fintype.card V))","role":"theorem","source_line":69,"source_path":"projects/foundations/Counting/Foundation/Witness.lean","source_sha256":"445f44cef18428e489ae6a429f9d511ced71837d95a96f423655cd856cef661b","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Foundation/Witness.lean#L69","summary":"Ignoring an independent witness component multiplies the count by its cardinality. In particular, freely adding bits does not preserve counts.","type":"∀ {W : Type u_1} {V : Type u_2} [inst : Fintype.{u_1} W] [inst_1 : Fintype.{u_2} V] (accept : W → Bool),\n  @Eq.{1} Nat\n    (@Counting.Foundation.countAccepted.{max u_1 u_2} (Prod.{u_1, u_2} W V)\n      (@instFintypeProd.{u_1, u_2} W V inst inst_1) fun (w : Prod.{u_1, u_2} W V) =>\n      accept (@Prod.fst.{u_1, u_2} W V w))\n    (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)\n      (@Counting.Foundation.countAccepted.{u_1} W inst accept) (@Fintype.card.{u_2} V inst_1))"},{"category":"core","display_name":"Counting.Foundation.countAccepted_product","family":"core-foundation-witness","import":"Counting.Foundation.Witness","kind":"theorem","module":"Counting.Foundation.Witness","name":"Counting.Foundation.countAccepted_product","readable_type":"∀ {W : Type u_1} {V : Type u_2} [inst : Fintype W] [inst_1 : Fintype V] (a : W → Bool) (b : V → Bool),\n  Eq (Counting.Foundation.countAccepted fun w => (a w.fst).and (b w.snd))\n    (instHMul.hMul (Counting.Foundation.countAccepted a) (Counting.Foundation.countAccepted b))","role":"theorem","source_line":82,"source_path":"projects/foundations/Counting/Foundation/Witness.lean","source_sha256":"445f44cef18428e489ae6a429f9d511ced71837d95a96f423655cd856cef661b","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Foundation/Witness.lean#L82","summary":"Independent conjunction multiplies accepting counts.","type":"∀ {W : Type u_1} {V : Type u_2} [inst : Fintype.{u_1} W] [inst_1 : Fintype.{u_2} V] (a : W → Bool) (b : V → Bool),\n  @Eq.{1} Nat\n    (@Counting.Foundation.countAccepted.{max u_1 u_2} (Prod.{u_1, u_2} W V)\n      (@instFintypeProd.{u_1, u_2} W V inst inst_1) fun (w : Prod.{u_1, u_2} W V) =>\n      Bool.and (a (@Prod.fst.{u_1, u_2} W V w)) (b (@Prod.snd.{u_1, u_2} W V w)))\n    (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) (@Counting.Foundation.countAccepted.{u_1} W inst a)\n      (@Counting.Foundation.countAccepted.{u_2} V inst_1 b))"},{"category":"core","display_name":"Counting.Foundation.witnessCount","family":"core-foundation-witness","import":"Counting.Foundation.Witness","kind":"definition","module":"Counting.Foundation.Witness","name":"Counting.Foundation.witnessCount","readable_type":"Nat → (List Bool → Bool) → Nat","role":"definition","source_line":114,"source_path":"projects/foundations/Counting/Foundation/Witness.lean","source_sha256":"445f44cef18428e489ae6a429f9d511ced71837d95a96f423655cd856cef661b","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Foundation/Witness.lean#L114","summary":"Ordered Boolean witnesses have exactly `n` bits.","type":"(n : Nat) → (accept : List.{0} Bool → Bool) → Nat"},{"category":"core","display_name":"Counting.Foundation.witnessCount_falsePadding","family":"core-foundation-witness","import":"Counting.Foundation.Witness","kind":"theorem","module":"Counting.Foundation.Witness","name":"Counting.Foundation.witnessCount_falsePadding","readable_type":"∀ (n k : Nat) (accept : List Bool → Bool),\n  Eq (Counting.Foundation.witnessCount (instHAdd.hAdd n k) (Counting.Foundation.falsePadding n k accept))\n    (Counting.Foundation.witnessCount n accept)","role":"theorem","source_line":145,"source_path":"projects/foundations/Counting/Foundation/Witness.lean","source_sha256":"445f44cef18428e489ae6a429f9d511ced71837d95a96f423655cd856cef661b","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Foundation/Witness.lean#L145","summary":"Appending a uniquely determined all-false suffix preserves every count, including zero-length witnesses and zero-length padding.","type":"∀ (n k : Nat) (accept : List.{0} Bool → Bool),\n  @Eq.{1} Nat\n    (Counting.Foundation.witnessCount (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) n k)\n      (Counting.Foundation.falsePadding n k accept))\n    (Counting.Foundation.witnessCount n accept)"},{"category":"core","display_name":"Counting.Foundation.witnessCount_ignored_padding","family":"core-foundation-witness","import":"Counting.Foundation.Witness","kind":"theorem","module":"Counting.Foundation.Witness","name":"Counting.Foundation.witnessCount_ignored_padding","readable_type":"∀ (n k : Nat) (accept : List Bool → Bool),\n  Eq (Counting.Foundation.witnessCount (instHAdd.hAdd n k) fun w => accept (List.take n w))\n    (instHMul.hMul (Counting.Foundation.witnessCount n accept) (instHPow.hPow 2 k))","role":"theorem","source_line":161,"source_path":"projects/foundations/Counting/Foundation/Witness.lean","source_sha256":"445f44cef18428e489ae6a429f9d511ced71837d95a96f423655cd856cef661b","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/foundations/Counting/Foundation/Witness.lean#L161","summary":"In contrast, an ignored `k`-bit suffix contributes the factor `2 ^ k`.","type":"∀ (n k : Nat) (accept : List.{0} Bool → Bool),\n  @Eq.{1} Nat\n    (Counting.Foundation.witnessCount (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) n k)\n      fun (w : List.{0} Bool) => accept (@List.take.{0} Bool n w))\n    (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) (Counting.Foundation.witnessCount n accept)\n      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k))"},{"category":"core","display_name":"Counting.Gadget.Substitution.partition_compile","family":"core-gadget-composition","import":"Counting.Gadget.Composition","kind":"theorem","module":"Counting.Gadget.Composition","name":"Counting.Gadget.Substitution.partition_compile","readable_type":"∀ {D R ι B H : Type} {L : Counting.Model.Language D R ι} {κ : Type} {M : Counting.Model.Language D R κ}\n  [inst : CommSemiring R] [inst_1 : Fintype D] [inst_2 : Fintype H] [inst_3 : DecidableEq H]\n  (P : Counting.Gadget.Substitution.Gadgets L M),\n  Counting.Gadget.Substitution.Realizes P →\n    ∀ (I : Counting.Model.OpenInstance M B H) (a : B → D),\n      Eq ((Counting.Gadget.Substitution.compile P I).partition a) (I.partition a)","role":"theorem","source_line":247,"source_path":"projects/partition-semantics/Counting/Gadget/Composition.lean","source_sha256":"ab7a4c898dbd3b5c6327919f11fdeb51d6dcf4a5eeba5b75b2eeac25149b7331","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/partition-semantics/Counting/Gadget/Composition.lean#L247","summary":"Full partition preservation for actual substitution of every occurrence. This holds over any commutative semiring, including exact cancellation when the semiring is a ring, and requires no nonempty-domain or positive-arity premise.","type":"∀ {D R ι B H : Type} {L : Counting.Model.Language D R ι} {κ : Type} {M : Counting.Model.Language D R κ}\n  [inst : CommSemiring.{0} R] [inst_1 : Fintype.{0} D] [inst_2 : Fintype.{0} H] [inst_3 : DecidableEq.{1} H]\n  (P : @Counting.Gadget.Substitution.Gadgets D R ι κ L M)\n  (hP : @Counting.Gadget.Substitution.Realizes D R ι L κ M inst inst_1 P) (I : @Counting.Model.OpenInstance D R κ M B H)\n  (a : B → D),\n  @Eq.{1} R\n    (@Counting.Model.OpenInstance.partition D R ι B\n      (Sum.{0, 0} H\n        (Fin\n          (@Counting.Gadget.Presentation.hidden D R ι L (Sum.{0, 0} B H)\n            (@Counting.Gadget.Substitution.expand D R ι B H L κ M P I))))\n      L inst inst_1\n      (@instFintypeSum.{0, 0} H\n        (Fin\n          (@Counting.Gadget.Presentation.hidden D R ι L (Sum.{0, 0} B H)\n            (@Counting.Gadget.Substitution.expand D R ι B H L κ M P I)))\n        inst_2\n        (Fin.fintype\n          (@Counting.Gadget.Presentation.hidden D R ι L (Sum.{0, 0} B H)\n            (@Counting.Gadget.Substitution.expand D R ι B H L κ M P I))))\n      (fun\n          (a b :\n            Sum.{0, 0} H\n              (Fin\n                (@Counting.Gadget.Presentation.hidden D R ι L (Sum.{0, 0} B H)\n                  (@Counting.Gadget.Substitution.expand D R ι B H L κ M P I)))) =>\n        @instDecidableEqSum.{0, 0} H\n          (Fin\n            (@Counting.Gadget.Presentation.hidden D R ι L (Sum.{0, 0} B H)\n              (@Counting.Gadget.Substitution.expand D R ι B H L κ M P I)))\n          inst_3\n          (instDecidableEqFin\n            (@Counting.Gadget.Presentation.hidden D R ι L (Sum.{0, 0} B H)\n              (@Counting.Gadget.Substitution.expand D R ι B H L κ M P I)))\n          a b)\n      (@Counting.Gadget.Substitution.compile D R ι B H L κ M P I) a)\n    (@Counting.Model.OpenInstance.partition D R κ B H M inst inst_1 inst_2 inst_3 I a)"},{"category":"core","display_name":"Counting.Gadget.partition_disjointUnion","family":"core-gadget-composition","import":"Counting.Gadget.Composition","kind":"theorem","module":"Counting.Gadget.Composition","name":"Counting.Gadget.partition_disjointUnion","readable_type":"∀ {D R ι B C H₁ H₂ : Type} {L : Counting.Model.Language D R ι} [inst : CommSemiring R] [inst_1 : Fintype D]\n  [inst_2 : Fintype H₁] [inst_3 : Fintype H₂] [inst_4 : DecidableEq H₁] [inst_5 : DecidableEq H₂]\n  (I : Counting.Model.OpenInstance L B H₁) (J : Counting.Model.OpenInstance L C H₂) (a : Sum B C → D),\n  Eq ((Counting.Gadget.disjointUnion I J).partition a)\n    (instHMul.hMul (I.partition (Function.comp a Sum.inl)) (J.partition (Function.comp a Sum.inr)))","role":"theorem","source_line":63,"source_path":"projects/partition-semantics/Counting/Gadget/Composition.lean","source_sha256":"ab7a4c898dbd3b5c6327919f11fdeb51d6dcf4a5eeba5b75b2eeac25149b7331","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/partition-semantics/Counting/Gadget/Composition.lean#L63","summary":"Independent open networks have the product partition table.","type":"∀ {D R ι B C H₁ H₂ : Type} {L : Counting.Model.Language D R ι} [inst : CommSemiring.{0} R] [inst_1 : Fintype.{0} D]\n  [inst_2 : Fintype.{0} H₁] [inst_3 : Fintype.{0} H₂] [inst_4 : DecidableEq.{1} H₁] [inst_5 : DecidableEq.{1} H₂]\n  (I : @Counting.Model.OpenInstance D R ι L B H₁) (J : @Counting.Model.OpenInstance D R ι L C H₂)\n  (a : Sum.{0, 0} B C → D),\n  @Eq.{1} R\n    (@Counting.Model.OpenInstance.partition D R ι (Sum.{0, 0} B C) (Sum.{0, 0} H₁ H₂) L inst inst_1\n      (@instFintypeSum.{0, 0} H₁ H₂ inst_2 inst_3)\n      (fun (a b : Sum.{0, 0} H₁ H₂) => @instDecidableEqSum.{0, 0} H₁ H₂ inst_4 inst_5 a b)\n      (@Counting.Gadget.disjointUnion D R ι B C H₁ H₂ L I J) a)\n    (@HMul.hMul.{0, 0, 0} R R R\n      (@instHMul.{0} R (@Distrib.toMul.{0} R (@instDistribOfSemiring.{0} R (@CommSemiring.toSemiring.{0} R inst))))\n      (@Counting.Model.OpenInstance.partition D R ι B H₁ L inst inst_1 inst_2 inst_4 I\n        (@Function.comp.{1, 1, 1} B (Sum.{0, 0} B C) D a (@Sum.inl.{0, 0} B C)))\n      (@Counting.Model.OpenInstance.partition D R ι C H₂ L inst inst_1 inst_3 inst_5 J\n        (@Function.comp.{1, 1, 1} C (Sum.{0, 0} B C) D a (@Sum.inr.{0, 0} B C))))"},{"category":"core","display_name":"Counting.Gadget.partition_glue","family":"core-gadget-composition","import":"Counting.Gadget.Composition","kind":"theorem","module":"Counting.Gadget.Composition","name":"Counting.Gadget.partition_glue","readable_type":"∀ {D R ι B H₁ H₂ : Type} {L : Counting.Model.Language D R ι} [inst : CommSemiring R] [inst_1 : Fintype D]\n  [inst_2 : Fintype H₁] [inst_3 : Fintype H₂] [inst_4 : DecidableEq H₁] [inst_5 : DecidableEq H₂]\n  (I : Counting.Model.OpenInstance L B H₁) (J : Counting.Model.OpenInstance L B H₂) (a : B → D),\n  Eq ((Counting.Gadget.glue I J).partition a) (instHMul.hMul (I.partition a) (J.partition a))","role":"theorem","source_line":42,"source_path":"projects/partition-semantics/Counting/Gadget/Composition.lean","source_sha256":"ab7a4c898dbd3b5c6327919f11fdeb51d6dcf4a5eeba5b75b2eeac25149b7331","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/partition-semantics/Counting/Gadget/Composition.lean#L42","summary":"The partition tables of two actual independent hidden blocks multiply.","type":"∀ {D R ι B H₁ H₂ : Type} {L : Counting.Model.Language D R ι} [inst : CommSemiring.{0} R] [inst_1 : Fintype.{0} D]\n  [inst_2 : Fintype.{0} H₁] [inst_3 : Fintype.{0} H₂] [inst_4 : DecidableEq.{1} H₁] [inst_5 : DecidableEq.{1} H₂]\n  (I : @Counting.Model.OpenInstance D R ι L B H₁) (J : @Counting.Model.OpenInstance D R ι L B H₂) (a : B → D),\n  @Eq.{1} R\n    (@Counting.Model.OpenInstance.partition D R ι B (Sum.{0, 0} H₁ H₂) L inst inst_1\n      (@instFintypeSum.{0, 0} H₁ H₂ inst_2 inst_3)\n      (fun (a b : Sum.{0, 0} H₁ H₂) => @instDecidableEqSum.{0, 0} H₁ H₂ inst_4 inst_5 a b)\n      (@Counting.Gadget.glue D R ι B H₁ H₂ L I J) a)\n    (@HMul.hMul.{0, 0, 0} R R R\n      (@instHMul.{0} R (@Distrib.toMul.{0} R (@instDistribOfSemiring.{0} R (@CommSemiring.toSemiring.{0} R inst))))\n      (@Counting.Model.OpenInstance.partition D R ι B H₁ L inst inst_1 inst_2 inst_4 I a)\n      (@Counting.Model.OpenInstance.partition D R ι B H₂ L inst inst_1 inst_3 inst_5 J a))"},{"category":"flagships","display_name":"Counting.HolantUnified.BinaryDisequality.binaryDisequality","family":"holant-binary","import":"Counting.HolantUnified.BinaryDisequality","kind":"theorem","module":"Counting.HolantUnified.BinaryDisequality","name":"Counting.HolantUnified.BinaryDisequality.binaryDisequality","original_declaration":"Holant.Theorems.binaryDisequality","paper_item":"1.1","readable_type":"∀ {s : Nat} {a : Nat → Nat}\n  (G :\n    (i : Fin s) →\n      Holant.Signature (Subtype fun x => SetLike.instMembership.mem Holant.Tractable.AlgebraicComplex x) (a i.val)),\n  Holant.Statements.BinaryDisequality G","role":"theorem","source_line":30,"source_path":"projects/holant-unified/Counting/HolantUnified/BinaryDisequality.lean","source_sha256":"b74e97a1723aa5c2469a9ec28e73e1471407647b5fbc0229b4c69ffbaf7620c7","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Counting/HolantUnified/BinaryDisequality.lean#L30","type":"∀ {s : Nat} {a : Nat → Nat}\n  (G :\n    (i : Fin s) →\n      Holant.Signature.{0}\n        (@Subtype.{1} Complex fun (x : Complex) =>\n          @Membership.mem.{0, 0} Complex\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              Complex\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)))\n            Holant.Tractable.AlgebraicComplex x)\n        (a (@Fin.val s i))),\n  @Holant.Statements.BinaryDisequality s a G"},{"category":"flagships","display_name":"Counting.HolantUnified.BinaryDisequality.binaryDisequality_uniform","family":"holant-binary","import":"Counting.HolantUnified.BinaryDisequality","kind":"theorem","module":"Counting.HolantUnified.BinaryDisequality","name":"Counting.HolantUnified.BinaryDisequality.binaryDisequality_uniform","original_declaration":"Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperMainTheorems.binaryDisequality_uniform","paper_item":"1.1 (recognition)","readable_type":"Exists fun M =>\n  ∀ (s : Nat) (a : Nat → Nat)\n    (G :\n      (i : Fin s) →\n        Holant.Signature (Subtype fun x => SetLike.instMembership.mem Holant.Tractable.AlgebraicComplex x) (a i.val))\n    (input : Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyInput.Input fun i => a i.val)\n    (represented : ∀ (i : Fin s) (x : Fin ((fun i => a i.val) i) → Bool), (input i x).Represents (G i x).val),\n    And\n      (Nonempty\n        (Turing.TM2OutputsInTime M.computer\n          (Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyPackingMachine.encoding.encode\n            (Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyPackingSource.fromSource (fun i => a i.val)\n              input Bool.false))\n          (Option.some\n            (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeAugmentedNativeDecision.outputEncoding.encode\n              (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeAugmentedNativeDecision.output\n                (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperBinaryDisequalityDecision.data G input\n                  represented))))\n          (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeAugmentedNativeDecision.executes.cost\n            (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperBinaryDisequalityDecision.data G input represented))))\n      (Iff\n        (Eq\n          (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeAugmentedNativeDecision.answer\n            (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperBinaryDisequalityDecision.data G input represented))\n          Bool.true)\n        (Holant.Tractable.TractX\n          (Holant.Tractable.familyAction Holant.Tractable.sourceKBasis\n            (Set.instUnion.union\n              (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperLiteralEqualityCriterion.family G)\n              (Set.instSingletonSet.singleton ⟨2, Holant.Tractable.kernelSignature Holant.Signature.equality⟩)))))","role":"theorem","source_line":46,"source_path":"projects/holant-unified/Counting/HolantUnified/BinaryDisequality.lean","source_sha256":"b74e97a1723aa5c2469a9ec28e73e1471407647b5fbc0229b4c69ffbaf7620c7","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Counting/HolantUnified/BinaryDisequality.lean#L46","type":"@Exists.{2} Holant.Complexity.BinaryCompose.Machine fun (M : Holant.Complexity.BinaryCompose.Machine) =>\n  ∀ (s : Nat) (a : Nat → Nat)\n    (G :\n      (i : Fin s) →\n        Holant.Signature.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (a (@Fin.val s i)))\n    (input :\n      @Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyInput.Input s fun (i : Fin s) =>\n        a (@Fin.val s i))\n    (represented :\n      ∀ (i : Fin s) (x : Fin ((fun (i : Fin s) => a (@Fin.val s i)) i) → Bool),\n        Holant.LocalDrafts.EffectiveAlgebraic.RootCode.Represents (input i x)\n          (@Subtype.val.{1} Complex\n            (fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (G i x))),\n    And\n      (Nonempty.{1}\n        (Turing.TM2OutputsInTime (Holant.Complexity.BinaryCompose.Machine.computer M)\n          (@Computability.Encoding.encode.{0, 0}\n            (Prod.{0, 0} (List.{0} (Prod.{0, 0} Nat (List.{0} Holant.LocalDrafts.EffectiveAlgebraic.RootCode))) Bool)\n            Bool Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyPackingMachine.encoding\n            (@Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyPackingSource.fromSource s\n              (fun (i : Fin s) => a (@Fin.val s i)) input Bool.false))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ (Holant.Complexity.BinaryCompose.Machine.computer M)\n                (Turing.FinTM2.k₁ (Holant.Complexity.BinaryCompose.Machine.computer M))))\n            (@Computability.Encoding.encode.{0, 0}\n              (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                (Prod.{0, 0}\n                  (Prod.{0, 0} (Prod.{0, 0} Bool (Prod.{0, 0} Bool Bool))\n                    (Prod.{0, 0}\n                      (List.{0}\n                        (Prod.{0, 0} Nat\n                          (List.{0}\n                            (Prod.{0, 0}\n                              (Prod.{0, 0} Bool\n                                (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                              (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))\n                      (Prod.{0, 0}\n                        (List.{0}\n                          (Prod.{0, 0} Nat\n                            (List.{0}\n                              (Prod.{0, 0}\n                                (Prod.{0, 0} Bool\n                                  (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                                (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))\n                        (List.{0}\n                          (Prod.{0, 0} Nat\n                            (List.{0}\n                              (Prod.{0, 0}\n                                (Prod.{0, 0} Bool\n                                  (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                                (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output))))))))\n                  (Prod.{0, 0}\n                    (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                      (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                        (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))\n                    (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                      (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                        (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output))))))\n              Bool Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeAugmentedNativeDecision.outputEncoding\n              (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeAugmentedNativeDecision.output\n                (@Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperBinaryDisequalityDecision.data s a G input\n                  represented))))\n          (@Holant.LocalDrafts.RemoteWork.TractChainV1.PhysicalFolds.Runs.cost\n            Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeTensorAggregation.Data\n            (Prod.{0, 0} (List.{0} (Prod.{0, 0} Nat (List.{0} Holant.LocalDrafts.EffectiveAlgebraic.RootCode))) Bool)\n            (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n              (Prod.{0, 0}\n                (Prod.{0, 0} (Prod.{0, 0} Bool (Prod.{0, 0} Bool Bool))\n                  (Prod.{0, 0}\n                    (List.{0}\n                      (Prod.{0, 0} Nat\n                        (List.{0}\n                          (Prod.{0, 0}\n                            (Prod.{0, 0} Bool (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                            (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))\n                    (Prod.{0, 0}\n                      (List.{0}\n                        (Prod.{0, 0} Nat\n                          (List.{0}\n                            (Prod.{0, 0}\n                              (Prod.{0, 0} Bool\n                                (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                              (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))\n                      (List.{0}\n                        (Prod.{0, 0} Nat\n                          (List.{0}\n                            (Prod.{0, 0}\n                              (Prod.{0, 0} Bool\n                                (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                              (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output))))))))\n                (Prod.{0, 0}\n                  (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                    (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                      (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))\n                  (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                    (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                      (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output))))))\n            Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyPackingMachine.encoding\n            Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeAugmentedNativeDecision.outputEncoding\n            Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeTensorAggregation.original\n            Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeAugmentedNativeDecision.output\n            Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeAugmentedNativeDecision.executes\n            (@Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperBinaryDisequalityDecision.data s a G input\n              represented))))\n      (Iff\n        (@Eq.{1} Bool\n          (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeAugmentedNativeDecision.answer\n            (@Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperBinaryDisequalityDecision.data s a G input\n              represented))\n          Bool.true)\n        (Holant.Tractable.TractX\n          (Holant.Tractable.familyAction Holant.Tractable.sourceKBasis\n            (@Union.union.{0}\n              (Holant.SignatureFamily.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x))\n              (@Set.instUnion.{0}\n                (Holant.AnySignature.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)))\n              (@Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperLiteralEqualityCriterion.family s a G)\n              (@Singleton.singleton.{0, 0}\n                (@Sigma.{0, 0} Nat fun (n : Nat) =>\n                  Holant.Signature.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    n)\n                (Holant.SignatureFamily.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x))\n                (@Set.instSingletonSet.{0}\n                  (Holant.AnySignature.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)))\n                (@Sigma.mk.{0, 0} Nat\n                  (fun (n : Nat) =>\n                    Holant.Signature.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      n)\n                  (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (Holant.Tractable.kernelSignature\n                    (@Holant.Signature.equality.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@CommSemiring.toSemiring.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@SubsemiringClass.toCommSemiring.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Holant.Tractable.AlgebraicComplex Complex Complex.instCommSemiring\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SubringClass.toSubsemiringClass.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@NonAssocCommRing.toNonAssocRing.{0} Complex\n                              (@CommRing.toNonAssocCommRing.{0} Complex Complex.commRing))\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SubfieldClass.toSubringClass.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@IntermediateField.instSubfieldClass.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField)\n                                  Complex.instCharZero))))))))))))))"},{"category":"flagships","display_name":"Counting.HolantUnified.BinaryDisequality.literalEquality","family":"holant-binary","import":"Counting.HolantUnified.BinaryDisequality","kind":"theorem","module":"Counting.HolantUnified.BinaryDisequality","name":"Counting.HolantUnified.BinaryDisequality.literalEquality","original_declaration":"Holant.Theorems.literalEquality","paper_item":"1.2","readable_type":"∀ {s : Nat} {a : Nat → Nat}\n  (G :\n    (i : Fin s) →\n      Holant.Signature (Subtype fun x => SetLike.instMembership.mem Holant.Tractable.AlgebraicComplex x) (a i.val)),\n  Holant.Statements.LiteralEquality G","role":"theorem","source_line":34,"source_path":"projects/holant-unified/Counting/HolantUnified/BinaryDisequality.lean","source_sha256":"b74e97a1723aa5c2469a9ec28e73e1471407647b5fbc0229b4c69ffbaf7620c7","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Counting/HolantUnified/BinaryDisequality.lean#L34","type":"∀ {s : Nat} {a : Nat → Nat}\n  (G :\n    (i : Fin s) →\n      Holant.Signature.{0}\n        (@Subtype.{1} Complex fun (x : Complex) =>\n          @Membership.mem.{0, 0} Complex\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              Complex\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)))\n            Holant.Tractable.AlgebraicComplex x)\n        (a (@Fin.val s i))),\n  @Holant.Statements.LiteralEquality s a G"},{"category":"flagships","display_name":"Counting.HolantUnified.BinaryDisequality.literalEquality_uniform","family":"holant-binary","import":"Counting.HolantUnified.BinaryDisequality","kind":"theorem","module":"Counting.HolantUnified.BinaryDisequality","name":"Counting.HolantUnified.BinaryDisequality.literalEquality_uniform","original_declaration":"Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperMainTheorems.literalEquality_uniform","paper_item":"1.2 (recognition)","readable_type":"Exists fun M =>\n  ∀ (s : Nat) (a : Nat → Nat)\n    (G :\n      (i : Fin s) →\n        Holant.Signature (Subtype fun x => SetLike.instMembership.mem Holant.Tractable.AlgebraicComplex x) (a i.val))\n    (input : Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyInput.Input fun i => a i.val)\n    (represented : ∀ (i : Fin s) (x : Fin ((fun i => a i.val) i) → Bool), (input i x).Represents (G i x).val),\n    And\n      (Nonempty\n        (Turing.TM2OutputsInTime M.computer\n          (Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyPackingMachine.encoding.encode\n            (Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyPackingSource.fromSource (fun i => a i.val)\n              input Bool.false))\n          (Option.some\n            (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeFourDecision.outputEncoding.encode\n              (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeFourDecision.output\n                (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperLiteralEqualityDecision.data G input\n                  represented))))\n          (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeFourDecision.executes.cost\n            (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperLiteralEqualityDecision.data G input represented))))\n      (Iff\n        (Eq (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperLiteralEqualityDecision.answer G input represented)\n          Bool.true)\n        (Holant.Tractable.TractX\n          (Holant.Tractable.familyAction Holant.Tractable.sourceKBasis\n            (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperLiteralEqualityCriterion.family G))))","role":"theorem","source_line":64,"source_path":"projects/holant-unified/Counting/HolantUnified/BinaryDisequality.lean","source_sha256":"b74e97a1723aa5c2469a9ec28e73e1471407647b5fbc0229b4c69ffbaf7620c7","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Counting/HolantUnified/BinaryDisequality.lean#L64","type":"@Exists.{2} Holant.Complexity.BinaryCompose.Machine fun (M : Holant.Complexity.BinaryCompose.Machine) =>\n  ∀ (s : Nat) (a : Nat → Nat)\n    (G :\n      (i : Fin s) →\n        Holant.Signature.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (a (@Fin.val s i)))\n    (input :\n      @Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyInput.Input s fun (i : Fin s) =>\n        a (@Fin.val s i))\n    (represented :\n      ∀ (i : Fin s) (x : Fin ((fun (i : Fin s) => a (@Fin.val s i)) i) → Bool),\n        Holant.LocalDrafts.EffectiveAlgebraic.RootCode.Represents (input i x)\n          (@Subtype.val.{1} Complex\n            (fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (G i x))),\n    And\n      (Nonempty.{1}\n        (Turing.TM2OutputsInTime (Holant.Complexity.BinaryCompose.Machine.computer M)\n          (@Computability.Encoding.encode.{0, 0}\n            (Prod.{0, 0} (List.{0} (Prod.{0, 0} Nat (List.{0} Holant.LocalDrafts.EffectiveAlgebraic.RootCode))) Bool)\n            Bool Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyPackingMachine.encoding\n            (@Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyPackingSource.fromSource s\n              (fun (i : Fin s) => a (@Fin.val s i)) input Bool.false))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ (Holant.Complexity.BinaryCompose.Machine.computer M)\n                (Turing.FinTM2.k₁ (Holant.Complexity.BinaryCompose.Machine.computer M))))\n            (@Computability.Encoding.encode.{0, 0}\n              (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                (Prod.{0, 0}\n                  (Prod.{0, 0} (Prod.{0, 0} Bool (Prod.{0, 0} Bool Bool))\n                    (Prod.{0, 0}\n                      (List.{0}\n                        (Prod.{0, 0} Nat\n                          (List.{0}\n                            (Prod.{0, 0}\n                              (Prod.{0, 0} Bool\n                                (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                              (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))\n                      (Prod.{0, 0}\n                        (List.{0}\n                          (Prod.{0, 0} Nat\n                            (List.{0}\n                              (Prod.{0, 0}\n                                (Prod.{0, 0} Bool\n                                  (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                                (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))\n                        (List.{0}\n                          (Prod.{0, 0} Nat\n                            (List.{0}\n                              (Prod.{0, 0}\n                                (Prod.{0, 0} Bool\n                                  (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                                (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output))))))))\n                  (Prod.{0, 0}\n                    (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                      (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                        (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))\n                    (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                      (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                        (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output))))))\n              Bool Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeFourDecision.outputEncoding\n              (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeFourDecision.output\n                (@Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperLiteralEqualityDecision.data s a G input\n                  represented))))\n          (@Holant.LocalDrafts.RemoteWork.TractChainV1.PhysicalFolds.Runs.cost\n            Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeTensorAggregation.Data\n            (Prod.{0, 0} (List.{0} (Prod.{0, 0} Nat (List.{0} Holant.LocalDrafts.EffectiveAlgebraic.RootCode))) Bool)\n            (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n              (Prod.{0, 0}\n                (Prod.{0, 0} (Prod.{0, 0} Bool (Prod.{0, 0} Bool Bool))\n                  (Prod.{0, 0}\n                    (List.{0}\n                      (Prod.{0, 0} Nat\n                        (List.{0}\n                          (Prod.{0, 0}\n                            (Prod.{0, 0} Bool (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                            (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))\n                    (Prod.{0, 0}\n                      (List.{0}\n                        (Prod.{0, 0} Nat\n                          (List.{0}\n                            (Prod.{0, 0}\n                              (Prod.{0, 0} Bool\n                                (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                              (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))\n                      (List.{0}\n                        (Prod.{0, 0} Nat\n                          (List.{0}\n                            (Prod.{0, 0}\n                              (Prod.{0, 0} Bool\n                                (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                              (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output))))))))\n                (Prod.{0, 0}\n                  (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                    (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                      (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))\n                  (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                    (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                      (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output))))))\n            Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyPackingMachine.encoding\n            Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeFourDecision.outputEncoding\n            Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeTensorAggregation.original\n            Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeFourDecision.output\n            Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeFourDecision.executes\n            (@Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperLiteralEqualityDecision.data s a G input\n              represented))))\n      (Iff\n        (@Eq.{1} Bool\n          (@Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperLiteralEqualityDecision.answer s a G input represented)\n          Bool.true)\n        (Holant.Tractable.TractX\n          (Holant.Tractable.familyAction Holant.Tractable.sourceKBasis\n            (@Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperLiteralEqualityCriterion.family s a G))))"},{"category":"flagships","display_name":"Counting.HolantUnified.BinaryDisequality.quaternary","family":"holant-binary","import":"Counting.HolantUnified.BinaryDisequality","kind":"theorem","module":"Counting.HolantUnified.BinaryDisequality","name":"Counting.HolantUnified.BinaryDisequality.quaternary","original_declaration":"Holant.Theorems.quaternary","paper_item":"1.3","readable_type":"∀ {s : Nat} {a : Nat → Nat}\n  (G :\n    (i : Fin s) →\n      Holant.Signature (Subtype fun x => SetLike.instMembership.mem Holant.Tractable.AlgebraicComplex x) (a i.val)),\n  Holant.Statements.Quaternary G","role":"theorem","source_line":38,"source_path":"projects/holant-unified/Counting/HolantUnified/BinaryDisequality.lean","source_sha256":"b74e97a1723aa5c2469a9ec28e73e1471407647b5fbc0229b4c69ffbaf7620c7","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Counting/HolantUnified/BinaryDisequality.lean#L38","type":"∀ {s : Nat} {a : Nat → Nat}\n  (G :\n    (i : Fin s) →\n      Holant.Signature.{0}\n        (@Subtype.{1} Complex fun (x : Complex) =>\n          @Membership.mem.{0, 0} Complex\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              Complex\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)))\n            Holant.Tractable.AlgebraicComplex x)\n        (a (@Fin.val s i))),\n  @Holant.Statements.Quaternary s a G"},{"category":"flagships","display_name":"Counting.HolantUnified.BinaryDisequality.quaternary_uniform","family":"holant-binary","import":"Counting.HolantUnified.BinaryDisequality","kind":"theorem","module":"Counting.HolantUnified.BinaryDisequality","name":"Counting.HolantUnified.BinaryDisequality.quaternary_uniform","original_declaration":"Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperMainTheorems.quaternary_uniform","paper_item":"1.3 (recognition)","readable_type":"Exists fun M =>\n  ∀ (s : Nat) (a : Nat → Nat)\n    (G :\n      (i : Fin s) →\n        Holant.Signature (Subtype fun x => SetLike.instMembership.mem Holant.Tractable.AlgebraicComplex x) (a i.val))\n    (input : Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyInput.Input fun i => a i.val)\n    (represented : ∀ (i : Fin s) (x : Fin ((fun i => a i.val) i) → Bool), (input i x).Represents (G i x).val),\n    And\n      (Nonempty\n        (Turing.TM2OutputsInTime M.computer\n          (Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyPackingMachine.encoding.encode\n            (Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyPackingSource.fromSource (fun i => a i.val)\n              input Bool.false))\n          (Option.some\n            (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperQuaternaryDecision.RuntimeSevenPrograms.outputEncoding.encode\n              (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperQuaternaryDecision.RuntimeSevenPrograms.output\n                (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperMainTheorems.quaternaryData G input\n                  represented))))\n          (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperQuaternaryDecision.RuntimeSevenPrograms.executes.cost\n            (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperMainTheorems.quaternaryData G input represented))))\n      (And\n        (Iff\n          (Eq\n            (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperQuaternaryDecisionSource.answer\n              (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperMainTheorems.quaternaryData G input represented))\n            Bool.true)\n          (Holant.Tractable.Tract\n            (Holant.Tractable.familyAction Holant.Tractable.sourceKBasis\n              (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperLiteralEqualityCriterion.family G))))\n        (Iff\n          (Eq\n            (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperQuaternaryDecisionSource.answer\n              (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperMainTheorems.quaternaryData G input represented))\n            Bool.false)\n          (Not\n            (Holant.Tractable.Tract\n              (Holant.Tractable.familyAction Holant.Tractable.sourceKBasis\n                (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperLiteralEqualityCriterion.family G))))))","role":"theorem","source_line":80,"source_path":"projects/holant-unified/Counting/HolantUnified/BinaryDisequality.lean","source_sha256":"b74e97a1723aa5c2469a9ec28e73e1471407647b5fbc0229b4c69ffbaf7620c7","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Counting/HolantUnified/BinaryDisequality.lean#L80","type":"@Exists.{2} Holant.Complexity.BinaryCompose.Machine fun (M : Holant.Complexity.BinaryCompose.Machine) =>\n  ∀ (s : Nat) (a : Nat → Nat)\n    (G :\n      (i : Fin s) →\n        Holant.Signature.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (a (@Fin.val s i)))\n    (input :\n      @Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyInput.Input s fun (i : Fin s) =>\n        a (@Fin.val s i))\n    (represented :\n      ∀ (i : Fin s) (x : Fin ((fun (i : Fin s) => a (@Fin.val s i)) i) → Bool),\n        Holant.LocalDrafts.EffectiveAlgebraic.RootCode.Represents (input i x)\n          (@Subtype.val.{1} Complex\n            (fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (G i x))),\n    And\n      (Nonempty.{1}\n        (Turing.TM2OutputsInTime (Holant.Complexity.BinaryCompose.Machine.computer M)\n          (@Computability.Encoding.encode.{0, 0}\n            (Prod.{0, 0} (List.{0} (Prod.{0, 0} Nat (List.{0} Holant.LocalDrafts.EffectiveAlgebraic.RootCode))) Bool)\n            Bool Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyPackingMachine.encoding\n            (@Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyPackingSource.fromSource s\n              (fun (i : Fin s) => a (@Fin.val s i)) input Bool.false))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ (Holant.Complexity.BinaryCompose.Machine.computer M)\n                (Turing.FinTM2.k₁ (Holant.Complexity.BinaryCompose.Machine.computer M))))\n            (@Computability.Encoding.encode.{0, 0}\n              (Prod.{0, 0} Bool\n                (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                  (Prod.{0, 0}\n                    (Prod.{0, 0}\n                      (Prod.{0, 0}\n                        (Prod.{0, 0}\n                          (List.{0} (Prod.{0, 0} Nat (List.{0} Holant.LocalDrafts.EffectiveAlgebraic.RootCode))) Bool)\n                        (List.{0}\n                          (Prod.{0, 0} Nat\n                            (List.{0}\n                              (Prod.{0, 0} (List.{0} Bool)\n                                (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output))))))\n                      (Prod.{0, 0}\n                        (Prod.{0, 0} Bool\n                          (Prod.{0, 0}\n                            (Prod.{0, 0} (Prod.{0, 0} Bool (Prod.{0, 0} Bool Bool))\n                              (List.{0}\n                                (Prod.{0, 0} Nat\n                                  (Prod.{0, 0} (List.{0} (Prod.{0, 0} (List.{0} Bool) Bool))\n                                    (Prod.{0, 0}\n                                      (List.{0}\n                                        (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                          (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                            (Prod.{0, 0} (List.{0} Bool) Bool))))\n                                      (List.{0}\n                                        (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                          (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                            (Prod.{0, 0} (List.{0} Bool) Bool)))))))))\n                            (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                              (List.{0}\n                                (Prod.{0, 0} Nat\n                                  (List.{0}\n                                    (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                                      (Prod.{0, 0}\n                                        (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool)))\n                                        (Prod.{0, 0}\n                                          (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                                          (Option.{0}\n                                            Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output))))))))))\n                        (List.{0}\n                          (Prod.{0, 0} (List.{0} Nat)\n                            (Prod.{0, 0} (Prod.{0, 0} Bool (List.{0} (Prod.{0, 0} Nat (Prod.{0, 0} Nat Bool))))\n                              (Prod.{0, 0} Bool\n                                (Prod.{0, 0}\n                                  (Prod.{0, 0} (Prod.{0, 0} Bool (Prod.{0, 0} Bool Bool))\n                                    (List.{0}\n                                      (Prod.{0, 0} Nat\n                                        (Prod.{0, 0} (List.{0} (Prod.{0, 0} (List.{0} Bool) Bool))\n                                          (Prod.{0, 0}\n                                            (List.{0}\n                                              (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                                (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                                  (Prod.{0, 0} (List.{0} Bool) Bool))))\n                                            (List.{0}\n                                              (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                                (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                                  (Prod.{0, 0} (List.{0} Bool) Bool)))))))))\n                                  (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                                    (List.{0}\n                                      (Prod.{0, 0} Nat\n                                        (List.{0}\n                                          (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                                            (Prod.{0, 0}\n                                              (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool)))\n                                              (Prod.{0, 0}\n                                                (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                                                (Option.{0}\n                                                  Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))))))))))))\n                    (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                      (Prod.{0, 0}\n                        (Prod.{0, 0} (Prod.{0, 0} Bool (Prod.{0, 0} Bool Bool))\n                          (Prod.{0, 0}\n                            (List.{0}\n                              (Prod.{0, 0} Nat\n                                (List.{0}\n                                  (Prod.{0, 0}\n                                    (Prod.{0, 0} Bool\n                                      (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                                    (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))\n                            (Prod.{0, 0}\n                              (List.{0}\n                                (Prod.{0, 0} Nat\n                                  (List.{0}\n                                    (Prod.{0, 0}\n                                      (Prod.{0, 0} Bool\n                                        (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                                      (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))\n                              (List.{0}\n                                (Prod.{0, 0} Nat\n                                  (List.{0}\n                                    (Prod.{0, 0}\n                                      (Prod.{0, 0} Bool\n                                        (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                                      (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output))))))))\n                        (Prod.{0, 0}\n                          (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                            (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                              (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))\n                          (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                            (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                              (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))))))\n              Bool\n              Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperQuaternaryDecision.RuntimeSevenPrograms.outputEncoding\n              (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperQuaternaryDecision.RuntimeSevenPrograms.output\n                (@Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperMainTheorems.quaternaryData s a G input\n                  represented))))\n          (@Holant.LocalDrafts.RemoteWork.TractChainV1.PhysicalFolds.Runs.cost\n            Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperQuaternaryDecision.RuntimeSupportTable.Data\n            (Prod.{0, 0} (List.{0} (Prod.{0, 0} Nat (List.{0} Holant.LocalDrafts.EffectiveAlgebraic.RootCode))) Bool)\n            (Prod.{0, 0} Bool\n              (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                (Prod.{0, 0}\n                  (Prod.{0, 0}\n                    (Prod.{0, 0}\n                      (Prod.{0, 0}\n                        (List.{0} (Prod.{0, 0} Nat (List.{0} Holant.LocalDrafts.EffectiveAlgebraic.RootCode))) Bool)\n                      (List.{0}\n                        (Prod.{0, 0} Nat\n                          (List.{0}\n                            (Prod.{0, 0} (List.{0} Bool)\n                              (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output))))))\n                    (Prod.{0, 0}\n                      (Prod.{0, 0} Bool\n                        (Prod.{0, 0}\n                          (Prod.{0, 0} (Prod.{0, 0} Bool (Prod.{0, 0} Bool Bool))\n                            (List.{0}\n                              (Prod.{0, 0} Nat\n                                (Prod.{0, 0} (List.{0} (Prod.{0, 0} (List.{0} Bool) Bool))\n                                  (Prod.{0, 0}\n                                    (List.{0}\n                                      (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                        (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                          (Prod.{0, 0} (List.{0} Bool) Bool))))\n                                    (List.{0}\n                                      (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                        (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                          (Prod.{0, 0} (List.{0} Bool) Bool)))))))))\n                          (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                            (List.{0}\n                              (Prod.{0, 0} Nat\n                                (List.{0}\n                                  (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                                    (Prod.{0, 0}\n                                      (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool)))\n                                      (Prod.{0, 0}\n                                        (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                                        (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output))))))))))\n                      (List.{0}\n                        (Prod.{0, 0} (List.{0} Nat)\n                          (Prod.{0, 0} (Prod.{0, 0} Bool (List.{0} (Prod.{0, 0} Nat (Prod.{0, 0} Nat Bool))))\n                            (Prod.{0, 0} Bool\n                              (Prod.{0, 0}\n                                (Prod.{0, 0} (Prod.{0, 0} Bool (Prod.{0, 0} Bool Bool))\n                                  (List.{0}\n                                    (Prod.{0, 0} Nat\n                                      (Prod.{0, 0} (List.{0} (Prod.{0, 0} (List.{0} Bool) Bool))\n                                        (Prod.{0, 0}\n                                          (List.{0}\n                                            (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                              (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                                (Prod.{0, 0} (List.{0} Bool) Bool))))\n                                          (List.{0}\n                                            (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                              (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                                (Prod.{0, 0} (List.{0} Bool) Bool)))))))))\n                                (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                                  (List.{0}\n                                    (Prod.{0, 0} Nat\n                                      (List.{0}\n                                        (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                                          (Prod.{0, 0}\n                                            (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool)))\n                                            (Prod.{0, 0}\n                                              (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                                              (Option.{0}\n                                                Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))))))))))))\n                  (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                    (Prod.{0, 0}\n                      (Prod.{0, 0} (Prod.{0, 0} Bool (Prod.{0, 0} Bool Bool))\n                        (Prod.{0, 0}\n                          (List.{0}\n                            (Prod.{0, 0} Nat\n                              (List.{0}\n                                (Prod.{0, 0}\n                                  (Prod.{0, 0} Bool\n                                    (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                                  (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))\n                          (Prod.{0, 0}\n                            (List.{0}\n                              (Prod.{0, 0} Nat\n                                (List.{0}\n                                  (Prod.{0, 0}\n                                    (Prod.{0, 0} Bool\n                                      (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                                    (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))\n                            (List.{0}\n                              (Prod.{0, 0} Nat\n                                (List.{0}\n                                  (Prod.{0, 0}\n                                    (Prod.{0, 0} Bool\n                                      (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                                    (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output))))))))\n                      (Prod.{0, 0}\n                        (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                          (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                            (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))\n                        (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                          (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                            (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))))))\n            Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyPackingMachine.encoding\n            Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperQuaternaryDecision.RuntimeSevenPrograms.outputEncoding\n            Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperQuaternaryDecision.RuntimeSupportTable.original\n            Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperQuaternaryDecision.RuntimeSevenPrograms.output\n            Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperQuaternaryDecision.RuntimeSevenPrograms.executes\n            (@Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperMainTheorems.quaternaryData s a G input\n              represented))))\n      (And\n        (Iff\n          (@Eq.{1} Bool\n            (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperQuaternaryDecisionSource.answer\n              (@Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperMainTheorems.quaternaryData s a G input\n                represented))\n            Bool.true)\n          (Holant.Tractable.Tract\n            (Holant.Tractable.familyAction Holant.Tractable.sourceKBasis\n              (@Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperLiteralEqualityCriterion.family s a G))))\n        (Iff\n          (@Eq.{1} Bool\n            (Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperQuaternaryDecisionSource.answer\n              (@Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperMainTheorems.quaternaryData s a G input\n                represented))\n            Bool.false)\n          (Not\n            (Holant.Tractable.Tract\n              (Holant.Tractable.familyAction Holant.Tractable.sourceKBasis\n                (@Holant.LocalDrafts.RemoteWork.RootIntegrationV1.PaperLiteralEqualityCriterion.family s a G))))))"},{"category":"flagships","display_name":"Counting.HolantUnified.BinaryDisequality.tractableEvaluation","family":"holant-binary","import":"Counting.HolantUnified.BinaryDisequality","kind":"theorem","module":"Counting.HolantUnified.BinaryDisequality","name":"Counting.HolantUnified.BinaryDisequality.tractableEvaluation","original_declaration":"Holant.Theorems.tractableEvaluation","paper_item":"2.19 (evaluation)","readable_type":"∀ {s : Nat} {a : Nat → Nat}\n  (G :\n    (i : Fin s) →\n      Holant.Signature (Subtype fun x => SetLike.instMembership.mem Holant.Tractable.AlgebraicComplex x) (a i.val)),\n  Holant.Statements.TractableEvaluation G","role":"theorem","source_line":42,"source_path":"projects/holant-unified/Counting/HolantUnified/BinaryDisequality.lean","source_sha256":"b74e97a1723aa5c2469a9ec28e73e1471407647b5fbc0229b4c69ffbaf7620c7","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Counting/HolantUnified/BinaryDisequality.lean#L42","type":"∀ {s : Nat} {a : Nat → Nat}\n  (G :\n    (i : Fin s) →\n      Holant.Signature.{0}\n        (@Subtype.{1} Complex fun (x : Complex) =>\n          @Membership.mem.{0, 0} Complex\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              Complex\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)))\n            Holant.Tractable.AlgebraicComplex x)\n        (a (@Fin.val s i))),\n  @Holant.Statements.TractableEvaluation s a G"},{"category":"flagships","display_name":"Counting.HolantUnified.BinaryDisequality.tractableEvaluation_uniform","family":"holant-binary","import":"Counting.HolantUnified.BinaryDisequality","kind":"theorem","module":"Counting.HolantUnified.BinaryDisequality","name":"Counting.HolantUnified.BinaryDisequality.tractableEvaluation_uniform","original_declaration":"Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSevenDecision.uniform_source","paper_item":"2.19 (recognition)","readable_type":"Exists fun M =>\n  ∀ (d : Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSupportTable.Data),\n    And\n      (Nonempty\n        (Turing.TM2OutputsInTime M.computer\n          (Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyPackingMachine.encoding.encode\n            (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSupportTable.original d))\n          (Option.some\n            (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSevenPrograms.outputEncoding.encode\n              (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSevenPrograms.output d)))\n          (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSevenPrograms.executes.cost d)))\n      (And\n        (Iff (Eq (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSevenPrograms.output d).fst Bool.true)\n          (Holant.Tractable.Tract (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSevenDecision.family d)))\n        (Iff (Eq (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSevenPrograms.output d).fst Bool.false)\n          (Not (Holant.Tractable.Tract (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSevenDecision.family d)))))","role":"theorem","source_line":100,"source_path":"projects/holant-unified/Counting/HolantUnified/BinaryDisequality.lean","source_sha256":"b74e97a1723aa5c2469a9ec28e73e1471407647b5fbc0229b4c69ffbaf7620c7","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Counting/HolantUnified/BinaryDisequality.lean#L100","type":"@Exists.{2} Holant.Complexity.BinaryCompose.Machine fun (M : Holant.Complexity.BinaryCompose.Machine) =>\n  ∀ (d : Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSupportTable.Data),\n    And\n      (Nonempty.{1}\n        (Turing.TM2OutputsInTime (Holant.Complexity.BinaryCompose.Machine.computer M)\n          (@Computability.Encoding.encode.{0, 0}\n            (Prod.{0, 0} (List.{0} (Prod.{0, 0} Nat (List.{0} Holant.LocalDrafts.EffectiveAlgebraic.RootCode))) Bool)\n            Bool Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyPackingMachine.encoding\n            (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSupportTable.original d))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ (Holant.Complexity.BinaryCompose.Machine.computer M)\n                (Turing.FinTM2.k₁ (Holant.Complexity.BinaryCompose.Machine.computer M))))\n            (@Computability.Encoding.encode.{0, 0}\n              (Prod.{0, 0} Bool\n                (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                  (Prod.{0, 0}\n                    (Prod.{0, 0}\n                      (Prod.{0, 0}\n                        (Prod.{0, 0}\n                          (List.{0} (Prod.{0, 0} Nat (List.{0} Holant.LocalDrafts.EffectiveAlgebraic.RootCode))) Bool)\n                        (List.{0}\n                          (Prod.{0, 0} Nat\n                            (List.{0}\n                              (Prod.{0, 0} (List.{0} Bool)\n                                (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output))))))\n                      (Prod.{0, 0}\n                        (Prod.{0, 0} Bool\n                          (Prod.{0, 0}\n                            (Prod.{0, 0} (Prod.{0, 0} Bool (Prod.{0, 0} Bool Bool))\n                              (List.{0}\n                                (Prod.{0, 0} Nat\n                                  (Prod.{0, 0} (List.{0} (Prod.{0, 0} (List.{0} Bool) Bool))\n                                    (Prod.{0, 0}\n                                      (List.{0}\n                                        (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                          (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                            (Prod.{0, 0} (List.{0} Bool) Bool))))\n                                      (List.{0}\n                                        (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                          (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                            (Prod.{0, 0} (List.{0} Bool) Bool)))))))))\n                            (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                              (List.{0}\n                                (Prod.{0, 0} Nat\n                                  (List.{0}\n                                    (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                                      (Prod.{0, 0}\n                                        (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool)))\n                                        (Prod.{0, 0}\n                                          (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                                          (Option.{0}\n                                            Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output))))))))))\n                        (List.{0}\n                          (Prod.{0, 0} (List.{0} Nat)\n                            (Prod.{0, 0} (Prod.{0, 0} Bool (List.{0} (Prod.{0, 0} Nat (Prod.{0, 0} Nat Bool))))\n                              (Prod.{0, 0} Bool\n                                (Prod.{0, 0}\n                                  (Prod.{0, 0} (Prod.{0, 0} Bool (Prod.{0, 0} Bool Bool))\n                                    (List.{0}\n                                      (Prod.{0, 0} Nat\n                                        (Prod.{0, 0} (List.{0} (Prod.{0, 0} (List.{0} Bool) Bool))\n                                          (Prod.{0, 0}\n                                            (List.{0}\n                                              (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                                (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                                  (Prod.{0, 0} (List.{0} Bool) Bool))))\n                                            (List.{0}\n                                              (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                                (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                                  (Prod.{0, 0} (List.{0} Bool) Bool)))))))))\n                                  (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                                    (List.{0}\n                                      (Prod.{0, 0} Nat\n                                        (List.{0}\n                                          (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                                            (Prod.{0, 0}\n                                              (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool)))\n                                              (Prod.{0, 0}\n                                                (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                                                (Option.{0}\n                                                  Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))))))))))))\n                    (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                      (Prod.{0, 0}\n                        (Prod.{0, 0} (Prod.{0, 0} Bool (Prod.{0, 0} Bool Bool))\n                          (Prod.{0, 0}\n                            (List.{0}\n                              (Prod.{0, 0} Nat\n                                (List.{0}\n                                  (Prod.{0, 0}\n                                    (Prod.{0, 0} Bool\n                                      (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                                    (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))\n                            (Prod.{0, 0}\n                              (List.{0}\n                                (Prod.{0, 0} Nat\n                                  (List.{0}\n                                    (Prod.{0, 0}\n                                      (Prod.{0, 0} Bool\n                                        (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                                      (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))\n                              (List.{0}\n                                (Prod.{0, 0} Nat\n                                  (List.{0}\n                                    (Prod.{0, 0}\n                                      (Prod.{0, 0} Bool\n                                        (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                                      (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output))))))))\n                        (Prod.{0, 0}\n                          (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                            (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                              (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))\n                          (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                            (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                              (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))))))\n              Bool Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSevenPrograms.outputEncoding\n              (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSevenPrograms.output d)))\n          (@Holant.LocalDrafts.RemoteWork.TractChainV1.PhysicalFolds.Runs.cost\n            Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSupportTable.Data\n            (Prod.{0, 0} (List.{0} (Prod.{0, 0} Nat (List.{0} Holant.LocalDrafts.EffectiveAlgebraic.RootCode))) Bool)\n            (Prod.{0, 0} Bool\n              (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                (Prod.{0, 0}\n                  (Prod.{0, 0}\n                    (Prod.{0, 0}\n                      (Prod.{0, 0}\n                        (List.{0} (Prod.{0, 0} Nat (List.{0} Holant.LocalDrafts.EffectiveAlgebraic.RootCode))) Bool)\n                      (List.{0}\n                        (Prod.{0, 0} Nat\n                          (List.{0}\n                            (Prod.{0, 0} (List.{0} Bool)\n                              (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output))))))\n                    (Prod.{0, 0}\n                      (Prod.{0, 0} Bool\n                        (Prod.{0, 0}\n                          (Prod.{0, 0} (Prod.{0, 0} Bool (Prod.{0, 0} Bool Bool))\n                            (List.{0}\n                              (Prod.{0, 0} Nat\n                                (Prod.{0, 0} (List.{0} (Prod.{0, 0} (List.{0} Bool) Bool))\n                                  (Prod.{0, 0}\n                                    (List.{0}\n                                      (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                        (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                          (Prod.{0, 0} (List.{0} Bool) Bool))))\n                                    (List.{0}\n                                      (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                        (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                          (Prod.{0, 0} (List.{0} Bool) Bool)))))))))\n                          (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                            (List.{0}\n                              (Prod.{0, 0} Nat\n                                (List.{0}\n                                  (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                                    (Prod.{0, 0}\n                                      (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool)))\n                                      (Prod.{0, 0}\n                                        (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                                        (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output))))))))))\n                      (List.{0}\n                        (Prod.{0, 0} (List.{0} Nat)\n                          (Prod.{0, 0} (Prod.{0, 0} Bool (List.{0} (Prod.{0, 0} Nat (Prod.{0, 0} Nat Bool))))\n                            (Prod.{0, 0} Bool\n                              (Prod.{0, 0}\n                                (Prod.{0, 0} (Prod.{0, 0} Bool (Prod.{0, 0} Bool Bool))\n                                  (List.{0}\n                                    (Prod.{0, 0} Nat\n                                      (Prod.{0, 0} (List.{0} (Prod.{0, 0} (List.{0} Bool) Bool))\n                                        (Prod.{0, 0}\n                                          (List.{0}\n                                            (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                              (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                                (Prod.{0, 0} (List.{0} Bool) Bool))))\n                                          (List.{0}\n                                            (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                              (Prod.{0, 0} (Prod.{0, 0} (List.{0} Bool) Bool)\n                                                (Prod.{0, 0} (List.{0} Bool) Bool)))))))))\n                                (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                                  (List.{0}\n                                    (Prod.{0, 0} Nat\n                                      (List.{0}\n                                        (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                                          (Prod.{0, 0}\n                                            (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool)))\n                                            (Prod.{0, 0}\n                                              (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                                              (Option.{0}\n                                                Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))))))))))))\n                  (Prod.{0, 0} (Prod.{0, 0} Bool Bool)\n                    (Prod.{0, 0}\n                      (Prod.{0, 0} (Prod.{0, 0} Bool (Prod.{0, 0} Bool Bool))\n                        (Prod.{0, 0}\n                          (List.{0}\n                            (Prod.{0, 0} Nat\n                              (List.{0}\n                                (Prod.{0, 0}\n                                  (Prod.{0, 0} Bool\n                                    (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                                  (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))\n                          (Prod.{0, 0}\n                            (List.{0}\n                              (Prod.{0, 0} Nat\n                                (List.{0}\n                                  (Prod.{0, 0}\n                                    (Prod.{0, 0} Bool\n                                      (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                                    (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))\n                            (List.{0}\n                              (Prod.{0, 0} Nat\n                                (List.{0}\n                                  (Prod.{0, 0}\n                                    (Prod.{0, 0} Bool\n                                      (Prod.{0, 0} (List.{0} Nat) (Prod.{0, 0} (List.{0} Nat) (List.{0} Bool))))\n                                    (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output))))))))\n                      (Prod.{0, 0}\n                        (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                          (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                            (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))\n                        (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                          (Prod.{0, 0} (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)\n                            (Option.{0} Holant.LocalDrafts.EffectiveAlgebraic.WitnessOutput.Output)))))))))\n            Holant.LocalDrafts.MainChain.TransformRecognition.OriginalFamilyPackingMachine.encoding\n            Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSevenPrograms.outputEncoding\n            Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSupportTable.original\n            Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSevenPrograms.output\n            Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSevenPrograms.executes d)))\n      (And\n        (Iff\n          (@Eq.{1} Bool\n            (@Prod.fst.{0, 0} Bool Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSevenPrograms.Details\n              (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSevenPrograms.output d))\n            Bool.true)\n          (Holant.Tractable.Tract (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSevenDecision.family d)))\n        (Iff\n          (@Eq.{1} Bool\n            (@Prod.fst.{0, 0} Bool Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSevenPrograms.Details\n              (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSevenPrograms.output d))\n            Bool.false)\n          (Not (Holant.Tractable.Tract (Holant.LocalDrafts.RemoteWork.TractChainV1.RuntimeSevenDecision.family d)))))"},{"category":"flagships","display_name":"Counting.HolantUnified.FullDichotomy.both_dichotomies","family":"holant-full","import":"Counting.HolantUnified.FullDichotomy","kind":"theorem","module":"Counting.HolantUnified.FullDichotomy","name":"Counting.HolantUnified.FullDichotomy.both_dichotomies","original_declaration":"Paper2.PublicDichotomy.both_dichotomies","paper_item":"1.1;9.2","readable_type":"∀ (L : Paper2.ExactInput.Language),\n  And\n    (Or (And (Paper2.Tractable.Tract L.family) (Paper2.Problem.InFP Paper2.Problem.Wiring.ordinary L))\n      (And (Not (Paper2.Tractable.Tract L.family)) (Paper2.Problem.SharpPHard Paper2.Problem.Wiring.ordinary L)))\n    (Or (And (Paper2.Tractable.Tract (Paper2.kImage L)) (Paper2.Problem.InFP Paper2.Problem.Wiring.nativeX L))\n      (And (Not (Paper2.Tractable.Tract (Paper2.kImage L)))\n        (Paper2.Problem.SharpPHard Paper2.Problem.Wiring.nativeX L)))","role":"theorem","source_line":73,"source_path":"projects/holant-unified/Counting/HolantUnified/FullDichotomy.lean","source_sha256":"539309fb2bc5967105cbb539b79f434e84fd5cd7009a92ac201cb491fe749b5e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Counting/HolantUnified/FullDichotomy.lean#L73","type":"∀ (L : Paper2.ExactInput.Language),\n  And\n    (Or\n      (And (Paper2.Tractable.Tract (Paper2.ExactInput.Language.family L))\n        (Paper2.Problem.InFP Paper2.Problem.Wiring.ordinary L))\n      (And (Not (Paper2.Tractable.Tract (Paper2.ExactInput.Language.family L)))\n        (Paper2.Problem.SharpPHard Paper2.Problem.Wiring.ordinary L)))\n    (Or (And (Paper2.Tractable.Tract (Paper2.kImage L)) (Paper2.Problem.InFP Paper2.Problem.Wiring.nativeX L))\n      (And (Not (Paper2.Tractable.Tract (Paper2.kImage L)))\n        (Paper2.Problem.SharpPHard Paper2.Problem.Wiring.nativeX L)))"},{"category":"flagships","display_name":"Counting.HolantUnified.FullDichotomy.main_theorem_with_native_recognition","family":"holant-full","import":"Counting.HolantUnified.FullDichotomy","kind":"theorem","module":"Counting.HolantUnified.FullDichotomy","name":"Counting.HolantUnified.FullDichotomy.main_theorem_with_native_recognition","original_declaration":"Paper2.PublicDichotomy.main_theorem_with_native_recognition","paper_item":"1.1","readable_type":"Exists fun ordinary =>\n  Exists fun native =>\n    And\n      (∀ (raw : Paper2.ExactInput.RawLanguage) (hraw : raw.Valid),\n        Exists fun b =>\n          Exists fun steps =>\n            And\n              (Eq (Nat.iterate (fun c => c.bind ordinary.machine.tm.step) steps (Option.some (ordinary.initial raw)))\n                (Option.some (ordinary.final b)))\n              (And (Eq (ordinary.machine.tm.step (ordinary.final b)) Option.none)\n                (Iff (Eq b Bool.true) (Paper2.Tractable.Tract (Paper2.ExactInput.Language.family ⟨raw, hraw⟩)))))\n      (And\n        (∀ (raw : Paper2.ExactInput.RawLanguage) (hraw : raw.Valid),\n          Exists fun b =>\n            Exists fun steps =>\n              And\n                (Eq (Nat.iterate (fun c => c.bind native.machine.tm.step) steps (Option.some (native.initial raw)))\n                  (Option.some (native.final b)))\n                (And (Eq (native.machine.tm.step (native.final b)) Option.none)\n                  (Iff (Eq b Bool.true) (Paper2.Tractable.Tract (Paper2.kImage ⟨raw, hraw⟩)))))\n        (∀ (L : Paper2.ExactInput.Language),\n          And (Iff (Eq (ordinary.decision L) Bool.true) (Paper2.Tractable.Tract L.family))\n            (And (Iff (Eq (native.decision L) Bool.true) (Paper2.Tractable.Tract (Paper2.kImage L)))\n              (And (Paper2.Tractable.Tract L.family → Paper2.Problem.InFP Paper2.Problem.Wiring.ordinary L)\n                (And\n                  (Not (Paper2.Tractable.Tract L.family) → Paper2.Problem.SharpPHard Paper2.Problem.Wiring.ordinary L)\n                  (And (Paper2.Tractable.Tract (Paper2.kImage L) → Paper2.Problem.InFP Paper2.Problem.Wiring.nativeX L)\n                    (Not (Paper2.Tractable.Tract (Paper2.kImage L)) →\n                      Paper2.Problem.SharpPHard Paper2.Problem.Wiring.nativeX L)))))))","role":"theorem","source_line":19,"source_path":"projects/holant-unified/Counting/HolantUnified/FullDichotomy.lean","source_sha256":"539309fb2bc5967105cbb539b79f434e84fd5cd7009a92ac201cb491fe749b5e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Counting/HolantUnified/FullDichotomy.lean#L19","type":"@Exists.{2} Paper2.Problem.TractRecognizer fun (ordinary : Paper2.Problem.TractRecognizer) =>\n  @Exists.{2} Paper2.Problem.NativeTractRecognizer fun (native : Paper2.Problem.NativeTractRecognizer) =>\n    And\n      (∀ (raw : Paper2.ExactInput.RawLanguage) (hraw : Paper2.ExactInput.RawLanguage.Valid raw),\n        @Exists.{1} Bool fun (b : Bool) =>\n          @Exists.{1} Nat fun (steps : Nat) =>\n            And\n              (@Eq.{1}\n                (Option.{0}\n                  (Turing.FinTM2.Cfg\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                        Paper2.ExactInput.Language.bits\n                        (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                        (Paper2.Problem.TractRecognizer.decision ordinary)\n                        (Paper2.Problem.TractRecognizer.machine ordinary)))))\n                (@Nat.iterate.{1}\n                  (Option.{0}\n                    (Turing.FinTM2.Cfg\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                          Paper2.ExactInput.Language.bits\n                          (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                          (Paper2.Problem.TractRecognizer.decision ordinary)\n                          (Paper2.Problem.TractRecognizer.machine ordinary)))))\n                  (fun\n                      (c :\n                        Option.{0}\n                          (Turing.FinTM2.Cfg\n                            (@Turing.TM2ComputableAux.tm Bool Bool\n                              (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                                Paper2.ExactInput.Language.bits\n                                (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                                (Paper2.Problem.TractRecognizer.decision ordinary)\n                                (Paper2.Problem.TractRecognizer.machine ordinary))))) =>\n                    @Option.bind.{0, 0}\n                      (Turing.FinTM2.Cfg\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                            Paper2.ExactInput.Language.bits\n                            (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                            (Paper2.Problem.TractRecognizer.decision ordinary)\n                            (Paper2.Problem.TractRecognizer.machine ordinary))))\n                      (Turing.FinTM2.Cfg\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                            Paper2.ExactInput.Language.bits\n                            (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                            (Paper2.Problem.TractRecognizer.decision ordinary)\n                            (Paper2.Problem.TractRecognizer.machine ordinary))))\n                      c\n                      (Turing.FinTM2.step\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                            Paper2.ExactInput.Language.bits\n                            (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                            (Paper2.Problem.TractRecognizer.decision ordinary)\n                            (Paper2.Problem.TractRecognizer.machine ordinary)))))\n                  steps\n                  (@Option.some.{0}\n                    (Turing.FinTM2.Cfg\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                          Paper2.ExactInput.Language.bits\n                          (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                          (Paper2.Problem.TractRecognizer.decision ordinary)\n                          (Paper2.Problem.TractRecognizer.machine ordinary))))\n                    (Paper2.Problem.TractRecognizer.initial ordinary raw)))\n                (@Option.some.{0}\n                  (Turing.FinTM2.Cfg\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                        Paper2.ExactInput.Language.bits\n                        (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                        (Paper2.Problem.TractRecognizer.decision ordinary)\n                        (Paper2.Problem.TractRecognizer.machine ordinary))))\n                  (Paper2.Problem.TractRecognizer.final ordinary b)))\n              (And\n                (@Eq.{1}\n                  (Option.{0}\n                    (Turing.FinTM2.Cfg\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                          Paper2.ExactInput.Language.bits\n                          (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                          (Paper2.Problem.TractRecognizer.decision ordinary)\n                          (Paper2.Problem.TractRecognizer.machine ordinary)))))\n                  (Turing.FinTM2.step\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                        Paper2.ExactInput.Language.bits\n                        (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                        (Paper2.Problem.TractRecognizer.decision ordinary)\n                        (Paper2.Problem.TractRecognizer.machine ordinary)))\n                    (Paper2.Problem.TractRecognizer.final ordinary b))\n                  (@Option.none.{0}\n                    (Turing.FinTM2.Cfg\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                          Paper2.ExactInput.Language.bits\n                          (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                          (Paper2.Problem.TractRecognizer.decision ordinary)\n                          (Paper2.Problem.TractRecognizer.machine ordinary))))))\n                (Iff (@Eq.{1} Bool b Bool.true)\n                  (Paper2.Tractable.Tract\n                    (Paper2.ExactInput.Language.family\n                      (@Subtype.mk.{1} Paper2.ExactInput.RawLanguage\n                        (fun (L : Paper2.ExactInput.RawLanguage) => Paper2.ExactInput.RawLanguage.Valid L) raw\n                        hraw))))))\n      (And\n        (∀ (raw : Paper2.ExactInput.RawLanguage) (hraw : Paper2.ExactInput.RawLanguage.Valid raw),\n          @Exists.{1} Bool fun (b : Bool) =>\n            @Exists.{1} Nat fun (steps : Nat) =>\n              And\n                (@Eq.{1}\n                  (Option.{0}\n                    (Turing.FinTM2.Cfg\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                          Paper2.ExactInput.Language.bits\n                          (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                          (Paper2.Problem.NativeTractRecognizer.decision native)\n                          (Paper2.Problem.NativeTractRecognizer.machine native)))))\n                  (@Nat.iterate.{1}\n                    (Option.{0}\n                      (Turing.FinTM2.Cfg\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                            Paper2.ExactInput.Language.bits\n                            (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                            (Paper2.Problem.NativeTractRecognizer.decision native)\n                            (Paper2.Problem.NativeTractRecognizer.machine native)))))\n                    (fun\n                        (c :\n                          Option.{0}\n                            (Turing.FinTM2.Cfg\n                              (@Turing.TM2ComputableAux.tm Bool Bool\n                                (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                                  Paper2.ExactInput.Language.bits\n                                  (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                                  (Paper2.Problem.NativeTractRecognizer.decision native)\n                                  (Paper2.Problem.NativeTractRecognizer.machine native))))) =>\n                      @Option.bind.{0, 0}\n                        (Turing.FinTM2.Cfg\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                              Paper2.ExactInput.Language.bits\n                              (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                              (Paper2.Problem.NativeTractRecognizer.decision native)\n                              (Paper2.Problem.NativeTractRecognizer.machine native))))\n                        (Turing.FinTM2.Cfg\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                              Paper2.ExactInput.Language.bits\n                              (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                              (Paper2.Problem.NativeTractRecognizer.decision native)\n                              (Paper2.Problem.NativeTractRecognizer.machine native))))\n                        c\n                        (Turing.FinTM2.step\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                              Paper2.ExactInput.Language.bits\n                              (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                              (Paper2.Problem.NativeTractRecognizer.decision native)\n                              (Paper2.Problem.NativeTractRecognizer.machine native)))))\n                    steps\n                    (@Option.some.{0}\n                      (Turing.FinTM2.Cfg\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                            Paper2.ExactInput.Language.bits\n                            (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                            (Paper2.Problem.NativeTractRecognizer.decision native)\n                            (Paper2.Problem.NativeTractRecognizer.machine native))))\n                      (Paper2.Problem.NativeTractRecognizer.initial native raw)))\n                  (@Option.some.{0}\n                    (Turing.FinTM2.Cfg\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                          Paper2.ExactInput.Language.bits\n                          (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                          (Paper2.Problem.NativeTractRecognizer.decision native)\n                          (Paper2.Problem.NativeTractRecognizer.machine native))))\n                    (Paper2.Problem.NativeTractRecognizer.final native b)))\n                (And\n                  (@Eq.{1}\n                    (Option.{0}\n                      (Turing.FinTM2.Cfg\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                            Paper2.ExactInput.Language.bits\n                            (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                            (Paper2.Problem.NativeTractRecognizer.decision native)\n                            (Paper2.Problem.NativeTractRecognizer.machine native)))))\n                    (Turing.FinTM2.step\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                          Paper2.ExactInput.Language.bits\n                          (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                          (Paper2.Problem.NativeTractRecognizer.decision native)\n                          (Paper2.Problem.NativeTractRecognizer.machine native)))\n                      (Paper2.Problem.NativeTractRecognizer.final native b))\n                    (@Option.none.{0}\n                      (Turing.FinTM2.Cfg\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                            Paper2.ExactInput.Language.bits\n                            (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                            (Paper2.Problem.NativeTractRecognizer.decision native)\n                            (Paper2.Problem.NativeTractRecognizer.machine native))))))\n                  (Iff (@Eq.{1} Bool b Bool.true)\n                    (Paper2.Tractable.Tract\n                      (Paper2.kImage\n                        (@Subtype.mk.{1} Paper2.ExactInput.RawLanguage\n                          (fun (L : Paper2.ExactInput.RawLanguage) => Paper2.ExactInput.RawLanguage.Valid L) raw\n                          hraw))))))\n        (∀ (L : Paper2.ExactInput.Language),\n          And\n            (Iff (@Eq.{1} Bool (Paper2.Problem.TractRecognizer.decision ordinary L) Bool.true)\n              (Paper2.Tractable.Tract (Paper2.ExactInput.Language.family L)))\n            (And\n              (Iff (@Eq.{1} Bool (Paper2.Problem.NativeTractRecognizer.decision native L) Bool.true)\n                (Paper2.Tractable.Tract (Paper2.kImage L)))\n              (And\n                (Paper2.Tractable.Tract (Paper2.ExactInput.Language.family L) →\n                  Paper2.Problem.InFP Paper2.Problem.Wiring.ordinary L)\n                (And\n                  (Not (Paper2.Tractable.Tract (Paper2.ExactInput.Language.family L)) →\n                    Paper2.Problem.SharpPHard Paper2.Problem.Wiring.ordinary L)\n                  (And (Paper2.Tractable.Tract (Paper2.kImage L) → Paper2.Problem.InFP Paper2.Problem.Wiring.nativeX L)\n                    (Not (Paper2.Tractable.Tract (Paper2.kImage L)) →\n                      Paper2.Problem.SharpPHard Paper2.Problem.Wiring.nativeX L)))))))"},{"category":"flagships","display_name":"Counting.HolantUnified.FullDichotomy.native_dichotomy","family":"holant-full","import":"Counting.HolantUnified.FullDichotomy","kind":"theorem","module":"Counting.HolantUnified.FullDichotomy","name":"Counting.HolantUnified.FullDichotomy.native_dichotomy","original_declaration":"Paper2.PublicDichotomy.native_dichotomy","paper_item":"9.2","readable_type":"∀ (L : Paper2.ExactInput.Language),\n  Or (And (Paper2.Tractable.Tract (Paper2.kImage L)) (Paper2.Problem.InFP Paper2.Problem.Wiring.nativeX L))\n    (And (Not (Paper2.Tractable.Tract (Paper2.kImage L))) (Paper2.Problem.SharpPHard Paper2.Problem.Wiring.nativeX L))","role":"theorem","source_line":67,"source_path":"projects/holant-unified/Counting/HolantUnified/FullDichotomy.lean","source_sha256":"539309fb2bc5967105cbb539b79f434e84fd5cd7009a92ac201cb491fe749b5e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Counting/HolantUnified/FullDichotomy.lean#L67","type":"∀ (L : Paper2.ExactInput.Language),\n  Or (And (Paper2.Tractable.Tract (Paper2.kImage L)) (Paper2.Problem.InFP Paper2.Problem.Wiring.nativeX L))\n    (And (Not (Paper2.Tractable.Tract (Paper2.kImage L))) (Paper2.Problem.SharpPHard Paper2.Problem.Wiring.nativeX L))"},{"category":"flagships","display_name":"Counting.HolantUnified.FullDichotomy.native_hardness","family":"holant-full","import":"Counting.HolantUnified.FullDichotomy","kind":"theorem","module":"Counting.HolantUnified.FullDichotomy","name":"Counting.HolantUnified.FullDichotomy.native_hardness","original_declaration":"Paper2.PublicDichotomy.native_hardness","paper_item":"9.2","readable_type":"∀ (L : Paper2.ExactInput.Language),\n  Not (Paper2.Tractable.Tract (Paper2.kImage L)) → Paper2.Problem.SharpPHard Paper2.Problem.Wiring.nativeX L","role":"theorem","source_line":99,"source_path":"projects/holant-unified/Counting/HolantUnified/FullDichotomy.lean","source_sha256":"539309fb2bc5967105cbb539b79f434e84fd5cd7009a92ac201cb491fe749b5e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Counting/HolantUnified/FullDichotomy.lean#L99","type":"∀ (L : Paper2.ExactInput.Language) (h : Not (Paper2.Tractable.Tract (Paper2.kImage L))),\n  Paper2.Problem.SharpPHard Paper2.Problem.Wiring.nativeX L"},{"category":"flagships","display_name":"Counting.HolantUnified.FullDichotomy.native_inFP","family":"holant-full","import":"Counting.HolantUnified.FullDichotomy","kind":"theorem","module":"Counting.HolantUnified.FullDichotomy","name":"Counting.HolantUnified.FullDichotomy.native_inFP","original_declaration":"Paper2.TractableAlgorithms.native_public_inFP_of_tract","paper_item":"9.2","readable_type":"∀ (L : Paper2.ExactInput.Language),\n  Paper2.Tractable.Tract (Paper2.kImage L) → Paper2.Problem.InFP Paper2.Problem.Wiring.nativeX L","role":"theorem","source_line":87,"source_path":"projects/holant-unified/Counting/HolantUnified/FullDichotomy.lean","source_sha256":"539309fb2bc5967105cbb539b79f434e84fd5cd7009a92ac201cb491fe749b5e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Counting/HolantUnified/FullDichotomy.lean#L87","type":"∀ (L : Paper2.ExactInput.Language) (h : Paper2.Tractable.Tract (Paper2.kImage L)),\n  Paper2.Problem.InFP Paper2.Problem.Wiring.nativeX L"},{"category":"flagships","display_name":"Counting.HolantUnified.FullDichotomy.ordinary_dichotomy","family":"holant-full","import":"Counting.HolantUnified.FullDichotomy","kind":"theorem","module":"Counting.HolantUnified.FullDichotomy","name":"Counting.HolantUnified.FullDichotomy.ordinary_dichotomy","original_declaration":"Paper2.PublicDichotomy.ordinary_dichotomy","paper_item":"1.1","readable_type":"∀ (L : Paper2.ExactInput.Language),\n  Or (And (Paper2.Tractable.Tract L.family) (Paper2.Problem.InFP Paper2.Problem.Wiring.ordinary L))\n    (And (Not (Paper2.Tractable.Tract L.family)) (Paper2.Problem.SharpPHard Paper2.Problem.Wiring.ordinary L))","role":"theorem","source_line":60,"source_path":"projects/holant-unified/Counting/HolantUnified/FullDichotomy.lean","source_sha256":"539309fb2bc5967105cbb539b79f434e84fd5cd7009a92ac201cb491fe749b5e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Counting/HolantUnified/FullDichotomy.lean#L60","type":"∀ (L : Paper2.ExactInput.Language),\n  Or\n    (And (Paper2.Tractable.Tract (Paper2.ExactInput.Language.family L))\n      (Paper2.Problem.InFP Paper2.Problem.Wiring.ordinary L))\n    (And (Not (Paper2.Tractable.Tract (Paper2.ExactInput.Language.family L)))\n      (Paper2.Problem.SharpPHard Paper2.Problem.Wiring.ordinary L))"},{"category":"flagships","display_name":"Counting.HolantUnified.FullDichotomy.ordinary_hardness","family":"holant-full","import":"Counting.HolantUnified.FullDichotomy","kind":"theorem","module":"Counting.HolantUnified.FullDichotomy","name":"Counting.HolantUnified.FullDichotomy.ordinary_hardness","original_declaration":"Paper2.PublicDichotomy.ordinary_hardness","paper_item":"1.1","readable_type":"∀ (L : Paper2.ExactInput.Language),\n  Not (Paper2.Tractable.Tract L.family) → Paper2.Problem.SharpPHard Paper2.Problem.Wiring.ordinary L","role":"theorem","source_line":93,"source_path":"projects/holant-unified/Counting/HolantUnified/FullDichotomy.lean","source_sha256":"539309fb2bc5967105cbb539b79f434e84fd5cd7009a92ac201cb491fe749b5e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Counting/HolantUnified/FullDichotomy.lean#L93","type":"∀ (L : Paper2.ExactInput.Language) (h : Not (Paper2.Tractable.Tract (Paper2.ExactInput.Language.family L))),\n  Paper2.Problem.SharpPHard Paper2.Problem.Wiring.ordinary L"},{"category":"flagships","display_name":"Counting.HolantUnified.FullDichotomy.ordinary_inFP","family":"holant-full","import":"Counting.HolantUnified.FullDichotomy","kind":"theorem","module":"Counting.HolantUnified.FullDichotomy","name":"Counting.HolantUnified.FullDichotomy.ordinary_inFP","original_declaration":"Paper2.TractableAlgorithms.ordinary_public_inFP_of_tract","paper_item":"1.1","readable_type":"∀ (L : Paper2.ExactInput.Language),\n  Paper2.Tractable.Tract L.family → Paper2.Problem.InFP Paper2.Problem.Wiring.ordinary L","role":"theorem","source_line":82,"source_path":"projects/holant-unified/Counting/HolantUnified/FullDichotomy.lean","source_sha256":"539309fb2bc5967105cbb539b79f434e84fd5cd7009a92ac201cb491fe749b5e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Counting/HolantUnified/FullDichotomy.lean#L82","type":"∀ (L : Paper2.ExactInput.Language) (h : Paper2.Tractable.Tract (Paper2.ExactInput.Language.family L)),\n  Paper2.Problem.InFP Paper2.Problem.Wiring.ordinary L"},{"category":"flagships","display_name":"Counting.HolantUnified.FullDichotomy.theorem_9_2","family":"holant-full","import":"Counting.HolantUnified.FullDichotomy","kind":"theorem","module":"Counting.HolantUnified.FullDichotomy","name":"Counting.HolantUnified.FullDichotomy.theorem_9_2","original_declaration":"Paper2.PublicDichotomy.theorem_9_2","paper_item":"9.2","readable_type":"Exists fun r =>\n  And\n    (∀ (raw : Paper2.ExactInput.RawLanguage) (hraw : raw.Valid),\n      Exists fun b =>\n        Exists fun steps =>\n          And\n            (Eq (Nat.iterate (fun c => c.bind r.machine.tm.step) steps (Option.some (r.initial raw)))\n              (Option.some (r.final b)))\n            (And (Eq (r.machine.tm.step (r.final b)) Option.none)\n              (Iff (Eq b Bool.true) (Paper2.Tractable.Tract (Paper2.kImage ⟨raw, hraw⟩)))))\n    (∀ (L : Paper2.ExactInput.Language),\n      And (Iff (Eq (r.decision L) Bool.true) (Paper2.Tractable.Tract (Paper2.kImage L)))\n        (And (Paper2.Tractable.Tract (Paper2.kImage L) → Paper2.Problem.InFP Paper2.Problem.Wiring.nativeX L)\n          (Not (Paper2.Tractable.Tract (Paper2.kImage L)) → Paper2.Problem.SharpPHard Paper2.Problem.Wiring.nativeX L)))","role":"theorem","source_line":44,"source_path":"projects/holant-unified/Counting/HolantUnified/FullDichotomy.lean","source_sha256":"539309fb2bc5967105cbb539b79f434e84fd5cd7009a92ac201cb491fe749b5e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Counting/HolantUnified/FullDichotomy.lean#L44","type":"@Exists.{2} Paper2.Problem.NativeTractRecognizer fun (r : Paper2.Problem.NativeTractRecognizer) =>\n  And\n    (∀ (raw : Paper2.ExactInput.RawLanguage) (hraw : Paper2.ExactInput.RawLanguage.Valid raw),\n      @Exists.{1} Bool fun (b : Bool) =>\n        @Exists.{1} Nat fun (steps : Nat) =>\n          And\n            (@Eq.{1}\n              (Option.{0}\n                (Turing.FinTM2.Cfg\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                      Paper2.ExactInput.Language.bits\n                      (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                      (Paper2.Problem.NativeTractRecognizer.decision r)\n                      (Paper2.Problem.NativeTractRecognizer.machine r)))))\n              (@Nat.iterate.{1}\n                (Option.{0}\n                  (Turing.FinTM2.Cfg\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                        Paper2.ExactInput.Language.bits\n                        (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                        (Paper2.Problem.NativeTractRecognizer.decision r)\n                        (Paper2.Problem.NativeTractRecognizer.machine r)))))\n                (fun\n                    (c :\n                      Option.{0}\n                        (Turing.FinTM2.Cfg\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                              Paper2.ExactInput.Language.bits\n                              (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                              (Paper2.Problem.NativeTractRecognizer.decision r)\n                              (Paper2.Problem.NativeTractRecognizer.machine r))))) =>\n                  @Option.bind.{0, 0}\n                    (Turing.FinTM2.Cfg\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                          Paper2.ExactInput.Language.bits\n                          (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                          (Paper2.Problem.NativeTractRecognizer.decision r)\n                          (Paper2.Problem.NativeTractRecognizer.machine r))))\n                    (Turing.FinTM2.Cfg\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                          Paper2.ExactInput.Language.bits\n                          (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                          (Paper2.Problem.NativeTractRecognizer.decision r)\n                          (Paper2.Problem.NativeTractRecognizer.machine r))))\n                    c\n                    (Turing.FinTM2.step\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                          Paper2.ExactInput.Language.bits\n                          (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                          (Paper2.Problem.NativeTractRecognizer.decision r)\n                          (Paper2.Problem.NativeTractRecognizer.machine r)))))\n                steps\n                (@Option.some.{0}\n                  (Turing.FinTM2.Cfg\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                        Paper2.ExactInput.Language.bits\n                        (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                        (Paper2.Problem.NativeTractRecognizer.decision r)\n                        (Paper2.Problem.NativeTractRecognizer.machine r))))\n                  (Paper2.Problem.NativeTractRecognizer.initial r raw)))\n              (@Option.some.{0}\n                (Turing.FinTM2.Cfg\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                      Paper2.ExactInput.Language.bits\n                      (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                      (Paper2.Problem.NativeTractRecognizer.decision r)\n                      (Paper2.Problem.NativeTractRecognizer.machine r))))\n                (Paper2.Problem.NativeTractRecognizer.final r b)))\n            (And\n              (@Eq.{1}\n                (Option.{0}\n                  (Turing.FinTM2.Cfg\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                        Paper2.ExactInput.Language.bits\n                        (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                        (Paper2.Problem.NativeTractRecognizer.decision r)\n                        (Paper2.Problem.NativeTractRecognizer.machine r)))))\n                (Turing.FinTM2.step\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                      Paper2.ExactInput.Language.bits\n                      (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                      (Paper2.Problem.NativeTractRecognizer.decision r)\n                      (Paper2.Problem.NativeTractRecognizer.machine r)))\n                  (Paper2.Problem.NativeTractRecognizer.final r b))\n                (@Option.none.{0}\n                  (Turing.FinTM2.Cfg\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                        Paper2.ExactInput.Language.bits\n                        (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                        (Paper2.Problem.NativeTractRecognizer.decision r)\n                        (Paper2.Problem.NativeTractRecognizer.machine r))))))\n              (Iff (@Eq.{1} Bool b Bool.true)\n                (Paper2.Tractable.Tract\n                  (Paper2.kImage\n                    (@Subtype.mk.{1} Paper2.ExactInput.RawLanguage\n                      (fun (L : Paper2.ExactInput.RawLanguage) => Paper2.ExactInput.RawLanguage.Valid L) raw hraw))))))\n    (∀ (L : Paper2.ExactInput.Language),\n      And\n        (Iff (@Eq.{1} Bool (Paper2.Problem.NativeTractRecognizer.decision r L) Bool.true)\n          (Paper2.Tractable.Tract (Paper2.kImage L)))\n        (And (Paper2.Tractable.Tract (Paper2.kImage L) → Paper2.Problem.InFP Paper2.Problem.Wiring.nativeX L)\n          (Not (Paper2.Tractable.Tract (Paper2.kImage L)) → Paper2.Problem.SharpPHard Paper2.Problem.Wiring.nativeX L)))"},{"category":"flagships","display_name":"Counting.MatchgateWidth.binary_context_alternative","family":"matchgate-width","import":"Counting.MatchgateWidth.Main","kind":"theorem","module":"Counting.MatchgateWidth.Main","name":"Counting.MatchgateWidth.binary_context_alternative","original_declaration":"MatchgateWidth.Paper.claim_10_10_verified","readable_type":"MatchgateWidth.Paper.claim_10_10","role":"theorem","source_line":51,"source_path":"projects/matchgate-width/Counting/MatchgateWidth/Main.lean","source_sha256":"01f873cb5b49dd6f4dfb739b36da07b7666949702796063858c8b8b9429a760b","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/matchgate-width/Counting/MatchgateWidth/Main.lean#L51","type":"MatchgateWidth.Paper.claim_10_10"},{"category":"flagships","display_name":"Counting.MatchgateWidth.connection_prime_collapse","family":"matchgate-width","import":"Counting.MatchgateWidth.Main","kind":"theorem","module":"Counting.MatchgateWidth.Main","name":"Counting.MatchgateWidth.connection_prime_collapse","original_declaration":"MatchgateWidth.Paper.claim_10_7_verified","readable_type":"MatchgateWidth.Paper.claim_10_7","role":"theorem","source_line":47,"source_path":"projects/matchgate-width/Counting/MatchgateWidth/Main.lean","source_sha256":"01f873cb5b49dd6f4dfb739b36da07b7666949702796063858c8b8b9429a760b","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/matchgate-width/Counting/MatchgateWidth/Main.lean#L47","type":"MatchgateWidth.Paper.claim_10_7"},{"category":"flagships","display_name":"Counting.MatchgateWidth.field_preserving_realization","family":"matchgate-width","import":"Counting.MatchgateWidth.Main","kind":"theorem","module":"Counting.MatchgateWidth.Main","name":"Counting.MatchgateWidth.field_preserving_realization","original_declaration":"MatchgateWidth.Paper.claim_4_2_verified","readable_type":"MatchgateWidth.Paper.claim_4_2","role":"theorem","source_line":35,"source_path":"projects/matchgate-width/Counting/MatchgateWidth/Main.lean","source_sha256":"01f873cb5b49dd6f4dfb739b36da07b7666949702796063858c8b8b9429a760b","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/matchgate-width/Counting/MatchgateWidth/Main.lean#L35","type":"MatchgateWidth.Paper.claim_4_2"},{"category":"flagships","display_name":"Counting.MatchgateWidth.flag_family_unbounded","family":"matchgate-width","import":"Counting.MatchgateWidth.Main","kind":"theorem","module":"Counting.MatchgateWidth.Main","name":"Counting.MatchgateWidth.flag_family_unbounded","original_declaration":"MatchgateWidth.Paper.claim_3_3_family_verified","readable_type":"MatchgateWidth.Paper.claim_3_3_family","role":"theorem","source_line":31,"source_path":"projects/matchgate-width/Counting/MatchgateWidth/Main.lean","source_sha256":"01f873cb5b49dd6f4dfb739b36da07b7666949702796063858c8b8b9429a760b","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/matchgate-width/Counting/MatchgateWidth/Main.lean#L31","type":"MatchgateWidth.Paper.claim_3_3_family"},{"category":"flagships","display_name":"Counting.MatchgateWidth.integer_unbounded_width","family":"matchgate-width","import":"Counting.MatchgateWidth.Main","kind":"theorem","module":"Counting.MatchgateWidth.Main","name":"Counting.MatchgateWidth.integer_unbounded_width","original_declaration":"MatchgateWidth.Paper.claim_3_1_verified","readable_type":"MatchgateWidth.Paper.claim_3_1","role":"theorem","source_line":16,"source_path":"projects/matchgate-width/Counting/MatchgateWidth/Main.lean","source_sha256":"01f873cb5b49dd6f4dfb739b36da07b7666949702796063858c8b8b9429a760b","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/matchgate-width/Counting/MatchgateWidth/Main.lean#L16","type":"MatchgateWidth.Paper.claim_3_1"},{"category":"flagships","display_name":"Counting.MatchgateWidth.labelwise_cover_compression","family":"matchgate-width","import":"Counting.MatchgateWidth.Main","kind":"theorem","module":"Counting.MatchgateWidth.Main","name":"Counting.MatchgateWidth.labelwise_cover_compression","original_declaration":"MatchgateWidth.Paper.claim_10_5_verified","readable_type":"MatchgateWidth.Paper.claim_10_5","role":"theorem","source_line":43,"source_path":"projects/matchgate-width/Counting/MatchgateWidth/Main.lean","source_sha256":"01f873cb5b49dd6f4dfb739b36da07b7666949702796063858c8b8b9429a760b","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/matchgate-width/Counting/MatchgateWidth/Main.lean#L43","type":"MatchgateWidth.Paper.claim_10_5.{u_1}"},{"category":"flagships","display_name":"Counting.MatchgateWidth.no_domain_only_width_bound","family":"matchgate-width","import":"Counting.MatchgateWidth.Main","kind":"theorem","module":"Counting.MatchgateWidth.Main","name":"Counting.MatchgateWidth.no_domain_only_width_bound","original_declaration":"MatchgateWidth.Paper.claim_3_2_verified","readable_type":"MatchgateWidth.Paper.claim_3_2","role":"theorem","source_line":21,"source_path":"projects/matchgate-width/Counting/MatchgateWidth/Main.lean","source_sha256":"01f873cb5b49dd6f4dfb739b36da07b7666949702796063858c8b8b9429a760b","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/matchgate-width/Counting/MatchgateWidth/Main.lean#L21","type":"MatchgateWidth.Paper.claim_3_2"},{"category":"flagships","display_name":"Counting.MatchgateWidth.qutrit_support_trichotomy","family":"matchgate-width","import":"Counting.MatchgateWidth.Main","kind":"theorem","module":"Counting.MatchgateWidth.Main","name":"Counting.MatchgateWidth.qutrit_support_trichotomy","original_declaration":"MatchgateWidth.Paper.claim_3_3_verified","readable_type":"MatchgateWidth.Paper.claim_3_3","role":"theorem","source_line":26,"source_path":"projects/matchgate-width/Counting/MatchgateWidth/Main.lean","source_sha256":"01f873cb5b49dd6f4dfb739b36da07b7666949702796063858c8b8b9429a760b","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/matchgate-width/Counting/MatchgateWidth/Main.lean#L26","type":"MatchgateWidth.Paper.claim_3_3"},{"category":"flagships","display_name":"Counting.MatchgateWidth.transcendental_companion","family":"matchgate-width","import":"Counting.MatchgateWidth.Main","kind":"theorem","module":"Counting.MatchgateWidth.Main","name":"Counting.MatchgateWidth.transcendental_companion","original_declaration":"MatchgateWidth.Paper.claim_9_1_verified","readable_type":"MatchgateWidth.Paper.claim_9_1","role":"theorem","source_line":39,"source_path":"projects/matchgate-width/Counting/MatchgateWidth/Main.lean","source_sha256":"01f873cb5b49dd6f4dfb739b36da07b7666949702796063858c8b8b9429a760b","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/matchgate-width/Counting/MatchgateWidth/Main.lean#L39","type":"MatchgateWidth.Paper.claim_9_1"},{"category":"core","display_name":"Counting.Model.Language","family":"core-models","import":"Counting.Model.Basic","kind":"inductive","module":"Counting.Model.Basic","name":"Counting.Model.Language","readable_type":"Type → Type → Type → Type","role":"inductive","source_line":28,"source_path":"projects/partition-semantics/Counting/Model/Basic.lean","source_sha256":"67593d1247a0b1f3fb19512b226959b85faeff5f3cb092c009f3be4ff4654a1d","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/partition-semantics/Counting/Model/Basic.lean#L28","summary":"A family of signature tables, indexed by labels. A `Fintype` instance on the label type expresses finiteness; no positivity or nonzero-value condition is imposed on the tables.","type":"(D R ι : Type) → Type"},{"category":"core","display_name":"Counting.Model.Occurrence","family":"core-models","import":"Counting.Model.Basic","kind":"inductive","module":"Counting.Model.Basic","name":"Counting.Model.Occurrence","readable_type":"{D R ι : Type} → Counting.Model.Language D R ι → Type → Type","role":"inductive","source_line":38,"source_path":"projects/partition-semantics/Counting/Model/Basic.lean","source_sha256":"67593d1247a0b1f3fb19512b226959b85faeff5f3cb092c009f3be4ff4654a1d","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/partition-semantics/Counting/Model/Basic.lean#L38","summary":"A labeled occurrence with an ordered scope that may repeat variables.","type":"{D R ι : Type} → (L : Counting.Model.Language D R ι) → (V : Type) → Type"},{"category":"core","display_name":"Counting.Model.OpenInstance","family":"core-models","import":"Counting.Model.Basic","kind":"inductive","module":"Counting.Model.Basic","name":"Counting.Model.OpenInstance","readable_type":"{D R ι : Type} → Counting.Model.Language D R ι → Type → Type → Type","role":"inductive","source_line":67,"source_path":"projects/partition-semantics/Counting/Model/Basic.lean","source_sha256":"67593d1247a0b1f3fb19512b226959b85faeff5f3cb092c009f3be4ff4654a1d","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/partition-semantics/Counting/Model/Basic.lean#L67","summary":"An open instance with boundary variables `B` and hidden variables `H`. The occurrence list retains multiplicities, including repeated nullary factors.","type":"{D R ι : Type} → (L : Counting.Model.Language D R ι) → (B H : Type) → Type"},{"category":"core","display_name":"Counting.Model.OpenInstance.partition","family":"core-models","import":"Counting.Model.Basic","kind":"definition","module":"Counting.Model.Basic","name":"Counting.Model.OpenInstance.partition","readable_type":"{D R ι B H : Type} →\n  {L : Counting.Model.Language D R ι} →\n    [CommSemiring R] → [Fintype D] → [Fintype H] → [DecidableEq H] → Counting.Model.OpenInstance L B H → (B → D) → R","role":"definition","source_line":80,"source_path":"projects/partition-semantics/Counting/Model/Basic.lean","source_sha256":"67593d1247a0b1f3fb19512b226959b85faeff5f3cb092c009f3be4ff4654a1d","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/partition-semantics/Counting/Model/Basic.lean#L80","summary":"The pinned partition table, summing over every hidden-variable assignment. This includes assignments to isolated variables and allows exact cancellation.","type":"{D R ι B H : Type} →\n  {L : Counting.Model.Language D R ι} →\n    [CommSemiring.{0} R] →\n      [Fintype.{0} D] →\n        [Fintype.{0} H] → [DecidableEq.{1} H] → (I : @Counting.Model.OpenInstance D R ι L B H) → (a : B → D) → R"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.Client.compiler_run","family":"gadget","import":"Counting.Reduction.FixedGadget.Client","kind":"definition","module":"Counting.Reduction.FixedGadget.Client","name":"Counting.Reduction.FixedGadget.Client.compiler_run","name_semantics":"actual named kernel declaration","readable_type":"Turing.TM2OutputsInTime\n  (Counting.Reduction.FixedGadget.computes Counting.Reduction.FixedGadget.Client.templates\n        Counting.Reduction.FixedGadget.Client.templates_valid).machine.computer\n  ((Holant.Complexity.RawClosedNetwork.validatedEncoding 2 1\n        (Holant.Complexity.FixedGadgetSubstitution.sourceArity Counting.Reduction.FixedGadget.Client.templates)).encode\n    Counting.Reduction.FixedGadget.Client.repeated)\n  (Option.some\n    ((Holant.Complexity.RawClosedNetwork.validatedEncoding 1 1 Counting.Reduction.FixedGadget.Client.arity).encode\n      Counting.Reduction.FixedGadget.Client.output))\n  (Polynomial.eval\n    ((Holant.Complexity.RawClosedNetwork.validatedEncoding 2 1\n            (Holant.Complexity.FixedGadgetSubstitution.sourceArity\n              Counting.Reduction.FixedGadget.Client.templates)).encode\n        Counting.Reduction.FixedGadget.Client.repeated).length\n    (Counting.Reduction.FixedGadget.computes Counting.Reduction.FixedGadget.Client.templates\n        Counting.Reduction.FixedGadget.Client.templates_valid).time)","role":"client","source_line":124,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Client.lean","source_sha256":"0aee0f86a758725f6f1f38dc35a3b31b8be45e55c380b37dc9a2eaeea9bbf6f5","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Client.lean#L124","type":"Turing.TM2OutputsInTime\n  (Holant.Complexity.BinaryCompose.Machine.computer\n    (@Holant.Complexity.BinaryCompose.Computes.machine\n      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n        Holant.Complexity.RawClosedNetwork.WellFormed (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (Holant.Complexity.FixedGadgetSubstitution.sourceArity Counting.Reduction.FixedGadget.Client.templates) r)\n      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n        Holant.Complexity.RawClosedNetwork.WellFormed (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity r)\n      (Holant.Complexity.RawClosedNetwork.validatedEncoding\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (Holant.Complexity.FixedGadgetSubstitution.sourceArity Counting.Reduction.FixedGadget.Client.templates))\n      (Holant.Complexity.RawClosedNetwork.validatedEncoding\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity)\n      (@Counting.Reduction.FixedGadget.compile (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity\n        Counting.Reduction.FixedGadget.Client.templates Counting.Reduction.FixedGadget.Client.templates_valid)\n      (@Counting.Reduction.FixedGadget.computes (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity\n        Counting.Reduction.FixedGadget.Client.templates Counting.Reduction.FixedGadget.Client.templates_valid)))\n  (@Computability.Encoding.encode.{0, 0}\n    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n      Holant.Complexity.RawClosedNetwork.WellFormed (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (Holant.Complexity.FixedGadgetSubstitution.sourceArity Counting.Reduction.FixedGadget.Client.templates) r)\n    Bool\n    (Holant.Complexity.RawClosedNetwork.validatedEncoding (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity Counting.Reduction.FixedGadget.Client.templates))\n    Counting.Reduction.FixedGadget.Client.repeated)\n  (@Option.some.{0}\n    (List.{0}\n      (Turing.FinTM2.Γ\n        (Holant.Complexity.BinaryCompose.Machine.computer\n          (@Holant.Complexity.BinaryCompose.Computes.machine\n            (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n              Holant.Complexity.RawClosedNetwork.WellFormed\n                (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (Holant.Complexity.FixedGadgetSubstitution.sourceArity Counting.Reduction.FixedGadget.Client.templates)\n                r)\n            (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n              Holant.Complexity.RawClosedNetwork.WellFormed\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Reduction.FixedGadget.Client.arity r)\n            (Holant.Complexity.RawClosedNetwork.validatedEncoding\n              (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (Holant.Complexity.FixedGadgetSubstitution.sourceArity Counting.Reduction.FixedGadget.Client.templates))\n            (Holant.Complexity.RawClosedNetwork.validatedEncoding\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity)\n            (@Counting.Reduction.FixedGadget.compile (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity\n              Counting.Reduction.FixedGadget.Client.templates Counting.Reduction.FixedGadget.Client.templates_valid)\n            (@Counting.Reduction.FixedGadget.computes (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity\n              Counting.Reduction.FixedGadget.Client.templates Counting.Reduction.FixedGadget.Client.templates_valid)))\n        (Turing.FinTM2.k₁\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed\n                  (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity\n                    Counting.Reduction.FixedGadget.Client.templates)\n                  r)\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Reduction.FixedGadget.Client.arity r)\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding\n                (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (Holant.Complexity.FixedGadgetSubstitution.sourceArity Counting.Reduction.FixedGadget.Client.templates))\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Reduction.FixedGadget.Client.arity)\n              (@Counting.Reduction.FixedGadget.compile (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.templates\n                Counting.Reduction.FixedGadget.Client.templates_valid)\n              (@Counting.Reduction.FixedGadget.computes (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.templates\n                Counting.Reduction.FixedGadget.Client.templates_valid))))))\n    (@Computability.Encoding.encode.{0, 0}\n      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n        Holant.Complexity.RawClosedNetwork.WellFormed (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity r)\n      Bool\n      (Holant.Complexity.RawClosedNetwork.validatedEncoding\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity)\n      Counting.Reduction.FixedGadget.Client.output))\n  (@Polynomial.eval.{0} Nat Nat.instSemiring\n    (@List.length.{0} Bool\n      (@Computability.Encoding.encode.{0, 0}\n        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n          Holant.Complexity.RawClosedNetwork.WellFormed (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            (Holant.Complexity.FixedGadgetSubstitution.sourceArity Counting.Reduction.FixedGadget.Client.templates) r)\n        Bool\n        (Holant.Complexity.RawClosedNetwork.validatedEncoding\n          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (Holant.Complexity.FixedGadgetSubstitution.sourceArity Counting.Reduction.FixedGadget.Client.templates))\n        Counting.Reduction.FixedGadget.Client.repeated))\n    (@Holant.Complexity.BinaryCompose.Computes.time\n      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n        Holant.Complexity.RawClosedNetwork.WellFormed (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (Holant.Complexity.FixedGadgetSubstitution.sourceArity Counting.Reduction.FixedGadget.Client.templates) r)\n      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n        Holant.Complexity.RawClosedNetwork.WellFormed (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity r)\n      (Holant.Complexity.RawClosedNetwork.validatedEncoding\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (Holant.Complexity.FixedGadgetSubstitution.sourceArity Counting.Reduction.FixedGadget.Client.templates))\n      (Holant.Complexity.RawClosedNetwork.validatedEncoding\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity)\n      (@Counting.Reduction.FixedGadget.compile (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity\n        Counting.Reduction.FixedGadget.Client.templates Counting.Reduction.FixedGadget.Client.templates_valid)\n      (@Counting.Reduction.FixedGadget.computes (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity\n        Counting.Reduction.FixedGadget.Client.templates Counting.Reduction.FixedGadget.Client.templates_valid)))"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.Client.finite_resource_equivalent","family":"gadget","import":"Counting.Reduction.FixedGadget.Client","kind":"theorem","module":"Counting.Reduction.FixedGadget.Client","name":"Counting.Reduction.FixedGadget.Client.finite_resource_equivalent","name_semantics":"actual named kernel declaration","readable_type":"Counting.Complexity.ParsimoniousEquivalent\n  (Holant.Complexity.RawClosedNetwork.validatedEncoding 2 1 Counting.Reduction.FixedGadget.Client.arity)\n  (Holant.Complexity.RawClosedNetwork.validatedEncoding 1 1 Counting.Reduction.FixedGadget.Client.arity)\n  (Counting.Reduction.FixedGadget.value Counting.Reduction.FixedGadget.Client.extended\n    Counting.Reduction.FixedGadget.Client.kernels)\n  (Counting.Reduction.FixedGadget.value Counting.Reduction.FixedGadget.Client.base\n    Counting.Reduction.FixedGadget.Client.kernels)","role":"client","source_line":156,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Client.lean","source_sha256":"0aee0f86a758725f6f1f38dc35a3b31b8be45e55c380b37dc9a2eaeea9bbf6f5","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Client.lean#L156","type":"@Counting.Complexity.ParsimoniousEquivalent\n  (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n    Holant.Complexity.RawClosedNetwork.WellFormed (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity r)\n  (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n    Holant.Complexity.RawClosedNetwork.WellFormed (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity r)\n  Bool Bool Bool.fintype Bool.fintype\n  (Holant.Complexity.RawClosedNetwork.validatedEncoding (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity)\n  (Holant.Complexity.RawClosedNetwork.validatedEncoding (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity)\n  (@Counting.Reduction.FixedGadget.value (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity Nat\n    Nat.instCommSemiring Counting.Reduction.FixedGadget.Client.extended Counting.Reduction.FixedGadget.Client.kernels)\n  (@Counting.Reduction.FixedGadget.value (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity Nat\n    Nat.instCommSemiring Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.Client.independent_internal_copies","family":"gadget","import":"Counting.Reduction.FixedGadget.Client","kind":"theorem","module":"Counting.Reduction.FixedGadget.Client","name":"Counting.Reduction.FixedGadget.Client.independent_internal_copies","name_semantics":"actual named kernel declaration","readable_type":"And\n  (Eq\n    (List.instGetElem?NatLtLength.getElem!\n      (List.instGetElem?NatLtLength.getElem! Counting.Reduction.FixedGadget.Client.output.val.vertices 0).snd 1)\n    { fst := 2, snd := Bool.false })\n  (And\n    (Eq\n      (List.instGetElem?NatLtLength.getElem!\n        (List.instGetElem?NatLtLength.getElem! Counting.Reduction.FixedGadget.Client.output.val.vertices 2).snd 1)\n      { fst := 3, snd := Bool.false })\n    (Ne 2 3))","role":"client","source_line":76,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Client.lean","source_sha256":"0aee0f86a758725f6f1f38dc35a3b31b8be45e55c380b37dc9a2eaeea9bbf6f5","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Client.lean#L76","type":"And\n  (@Eq.{1} Holant.Complexity.RawEndpoint\n    (@GetElem?.getElem!.{0, 0, 0} (List.{0} Holant.Complexity.RawEndpoint) Nat Holant.Complexity.RawEndpoint\n      (fun (as : List.{0} Holant.Complexity.RawEndpoint) (i : Nat) =>\n        @LT.lt.{0} Nat instLTNat i (@List.length.{0} Holant.Complexity.RawEndpoint as))\n      (@List.instGetElem?NatLtLength.{0} Holant.Complexity.RawEndpoint)\n      (@instInhabitedProd.{0, 0} Nat Bool instInhabitedNat instInhabitedBool)\n      (@Prod.snd.{0, 0} Nat (List.{0} Holant.Complexity.RawEndpoint)\n        (@GetElem?.getElem!.{0, 0, 0} (List.{0} Holant.Complexity.RawVertex) Nat Holant.Complexity.RawVertex\n          (fun (as : List.{0} Holant.Complexity.RawVertex) (i : Nat) =>\n            @LT.lt.{0} Nat instLTNat i (@List.length.{0} Holant.Complexity.RawVertex as))\n          (@List.instGetElem?NatLtLength.{0} Holant.Complexity.RawVertex)\n          (@instInhabitedProd.{0, 0} Nat (List.{0} Holant.Complexity.RawEndpoint) instInhabitedNat\n            (@instInhabitedList.{0} Holant.Complexity.RawEndpoint))\n          (Holant.Complexity.RawClosedNetwork.vertices\n            (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n              (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Reduction.FixedGadget.Client.arity r)\n              Counting.Reduction.FixedGadget.Client.output))\n          (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))))\n      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n    (@Prod.mk.{0, 0} Nat Bool (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) Bool.false))\n  (And\n    (@Eq.{1} Holant.Complexity.RawEndpoint\n      (@GetElem?.getElem!.{0, 0, 0} (List.{0} Holant.Complexity.RawEndpoint) Nat Holant.Complexity.RawEndpoint\n        (fun (as : List.{0} Holant.Complexity.RawEndpoint) (i : Nat) =>\n          @LT.lt.{0} Nat instLTNat i (@List.length.{0} Holant.Complexity.RawEndpoint as))\n        (@List.instGetElem?NatLtLength.{0} Holant.Complexity.RawEndpoint)\n        (@instInhabitedProd.{0, 0} Nat Bool instInhabitedNat instInhabitedBool)\n        (@Prod.snd.{0, 0} Nat (List.{0} Holant.Complexity.RawEndpoint)\n          (@GetElem?.getElem!.{0, 0, 0} (List.{0} Holant.Complexity.RawVertex) Nat Holant.Complexity.RawVertex\n            (fun (as : List.{0} Holant.Complexity.RawVertex) (i : Nat) =>\n              @LT.lt.{0} Nat instLTNat i (@List.length.{0} Holant.Complexity.RawVertex as))\n            (@List.instGetElem?NatLtLength.{0} Holant.Complexity.RawVertex)\n            (@instInhabitedProd.{0, 0} Nat (List.{0} Holant.Complexity.RawEndpoint) instInhabitedNat\n              (@instInhabitedList.{0} Holant.Complexity.RawEndpoint))\n            (Holant.Complexity.RawClosedNetwork.vertices\n              (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Reduction.FixedGadget.Client.arity r)\n                Counting.Reduction.FixedGadget.Client.output))\n            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      (@Prod.mk.{0, 0} Nat Bool (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) Bool.false))\n    (@Ne.{1} Nat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n      (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))))"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.Client.nullary_zero_value","family":"gadget","import":"Counting.Reduction.FixedGadget.Client","kind":"theorem","module":"Counting.Reduction.FixedGadget.Client","name":"Counting.Reduction.FixedGadget.Client.nullary_zero_value","name_semantics":"actual named kernel declaration","readable_type":"Eq\n  (Counting.Reduction.FixedGadget.value (fun x x_1 => 0) (fun e => e.elim0)\n    (Counting.Reduction.FixedGadget.compile Counting.Reduction.FixedGadget.Client.nullaryTemplates\n      Counting.Reduction.FixedGadget.Client.nullary_valid Counting.Reduction.FixedGadget.Client.nullaryInput))\n  0","role":"client","source_line":175,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Client.lean","source_sha256":"0aee0f86a758725f6f1f38dc35a3b31b8be45e55c380b37dc9a2eaeea9bbf6f5","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Client.lean#L175","type":"@Eq.{1} Nat\n  (@Counting.Reduction.FixedGadget.value (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n    (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n    (fun (x : Nat) => @OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) Nat Nat.instCommSemiring\n    (fun (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        (x_1 : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) → Bool) =>\n      @OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n    (fun (e : Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) =>\n      @Fin.elim0.{1} (Bool → Bool → Nat) e)\n    (@Counting.Reduction.FixedGadget.compile (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n      (fun (x : Nat) => @OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n      Counting.Reduction.FixedGadget.Client.nullaryTemplates Counting.Reduction.FixedGadget.Client.nullary_valid\n      Counting.Reduction.FixedGadget.Client.nullaryInput))\n  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.Client.output_codec_roundtrip","family":"gadget","import":"Counting.Reduction.FixedGadget.Client","kind":"theorem","module":"Counting.Reduction.FixedGadget.Client","name":"Counting.Reduction.FixedGadget.Client.output_codec_roundtrip","name_semantics":"actual named kernel declaration","readable_type":"Eq\n  ((Holant.Complexity.RawClosedNetwork.validatedEncoding 1 1 Counting.Reduction.FixedGadget.Client.arity).decode\n    ((Holant.Complexity.RawClosedNetwork.validatedEncoding 1 1 Counting.Reduction.FixedGadget.Client.arity).encode\n      (Counting.Reduction.FixedGadget.compile Counting.Reduction.FixedGadget.Client.templates\n        Counting.Reduction.FixedGadget.Client.templates_valid Counting.Reduction.FixedGadget.Client.repeated)))\n  (Option.some Counting.Reduction.FixedGadget.Client.output)","role":"client","source_line":81,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Client.lean","source_sha256":"0aee0f86a758725f6f1f38dc35a3b31b8be45e55c380b37dc9a2eaeea9bbf6f5","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Client.lean#L81","type":"@Eq.{1}\n  (Option.{0}\n    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n      Holant.Complexity.RawClosedNetwork.WellFormed (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity r))\n  (@Computability.Encoding.decode.{0, 0}\n    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n      Holant.Complexity.RawClosedNetwork.WellFormed (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity r)\n    Bool\n    (Holant.Complexity.RawClosedNetwork.validatedEncoding (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity)\n    (@Computability.Encoding.encode.{0, 0}\n      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n        Holant.Complexity.RawClosedNetwork.WellFormed (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity r)\n      Bool\n      (Holant.Complexity.RawClosedNetwork.validatedEncoding\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity)\n      (@Counting.Reduction.FixedGadget.compile (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity\n        Counting.Reduction.FixedGadget.Client.templates Counting.Reduction.FixedGadget.Client.templates_valid\n        Counting.Reduction.FixedGadget.Client.repeated)))\n  (@Option.some.{0}\n    (Counting.Reduction.FixedGadget.Input (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity)\n    Counting.Reduction.FixedGadget.Client.output)"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.Client.output_encoded_bound","family":"gadget","import":"Counting.Reduction.FixedGadget.Client","kind":"theorem","module":"Counting.Reduction.FixedGadget.Client","name":"Counting.Reduction.FixedGadget.Client.output_encoded_bound","name_semantics":"actual named kernel declaration","readable_type":"instLENat.le\n  ((Holant.Complexity.RawClosedNetwork.validatedEncoding 1 1 Counting.Reduction.FixedGadget.Client.arity).encode\n      Counting.Reduction.FixedGadget.Client.output).length\n  (Polynomial.eval\n    ((Holant.Complexity.RawClosedNetwork.validatedEncoding 2 1\n            (Holant.Complexity.FixedGadgetSubstitution.sourceArity\n              Counting.Reduction.FixedGadget.Client.templates)).encode\n        Counting.Reduction.FixedGadget.Client.repeated).length\n    (Holant.Complexity.FixedGadgetSubstitution.querySizePolynomial 1 1 2 2 1))","role":"client","source_line":97,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Client.lean","source_sha256":"0aee0f86a758725f6f1f38dc35a3b31b8be45e55c380b37dc9a2eaeea9bbf6f5","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Client.lean#L97","type":"@LE.le.{0} Nat instLENat\n  (@List.length.{0} Bool\n    (@Computability.Encoding.encode.{0, 0}\n      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n        Holant.Complexity.RawClosedNetwork.WellFormed (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity r)\n      Bool\n      (Holant.Complexity.RawClosedNetwork.validatedEncoding\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity)\n      Counting.Reduction.FixedGadget.Client.output))\n  (@Polynomial.eval.{0} Nat Nat.instSemiring\n    (@List.length.{0} Bool\n      (@Computability.Encoding.encode.{0, 0}\n        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n          Holant.Complexity.RawClosedNetwork.WellFormed (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            (Holant.Complexity.FixedGadgetSubstitution.sourceArity Counting.Reduction.FixedGadget.Client.templates) r)\n        Bool\n        (Holant.Complexity.RawClosedNetwork.validatedEncoding\n          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (Holant.Complexity.FixedGadgetSubstitution.sourceArity Counting.Reduction.FixedGadget.Client.templates))\n        Counting.Reduction.FixedGadget.Client.repeated))\n    (Holant.Complexity.FixedGadgetSubstitution.querySizePolynomial\n      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.Client.output_records","family":"gadget","import":"Counting.Reduction.FixedGadget.Client","kind":"theorem","module":"Counting.Reduction.FixedGadget.Client","name":"Counting.Reduction.FixedGadget.Client.output_records","name_semantics":"actual named kernel declaration","readable_type":"Eq Counting.Reduction.FixedGadget.Client.output.val\n  {\n    vertices :=\n      List.cons\n        { fst := 0,\n          snd := List.cons { fst := 0, snd := Bool.false } (List.cons { fst := 2, snd := Bool.false } List.nil) }\n        (List.cons\n          { fst := 0,\n            snd := List.cons { fst := 2, snd := Bool.true } (List.cons { fst := 1, snd := Bool.false } List.nil) }\n          (List.cons\n            { fst := 0,\n              snd := List.cons { fst := 0, snd := Bool.true } (List.cons { fst := 3, snd := Bool.false } List.nil) }\n            (List.cons\n              { fst := 0,\n                snd := List.cons { fst := 3, snd := Bool.true } (List.cons { fst := 1, snd := Bool.true } List.nil) }\n              List.nil))),\n    edges := List.cons 0 (List.cons 0 (List.cons 0 (List.cons 0 List.nil))) }","role":"client","source_line":71,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Client.lean","source_sha256":"0aee0f86a758725f6f1f38dc35a3b31b8be45e55c380b37dc9a2eaeea9bbf6f5","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Client.lean#L71","type":"@Eq.{1} Holant.Complexity.RawClosedNetwork\n  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n      Holant.Complexity.RawClosedNetwork.WellFormed (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity r)\n    Counting.Reduction.FixedGadget.Client.output)\n  (Holant.Complexity.RawClosedNetwork.mk\n    (@List.cons.{0} Holant.Complexity.RawVertex\n      (@Prod.mk.{0, 0} Nat (List.{0} Holant.Complexity.RawEndpoint)\n        (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n        (@List.cons.{0} Holant.Complexity.RawEndpoint\n          (@Prod.mk.{0, 0} Nat Bool (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) Bool.false)\n          (@List.cons.{0} Holant.Complexity.RawEndpoint\n            (@Prod.mk.{0, 0} Nat Bool (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) Bool.false)\n            (@List.nil.{0} Holant.Complexity.RawEndpoint))))\n      (@List.cons.{0} Holant.Complexity.RawVertex\n        (@Prod.mk.{0, 0} Nat (List.{0} Holant.Complexity.RawEndpoint)\n          (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n          (@List.cons.{0} Holant.Complexity.RawEndpoint\n            (@Prod.mk.{0, 0} Nat Bool (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) Bool.true)\n            (@List.cons.{0} Holant.Complexity.RawEndpoint\n              (@Prod.mk.{0, 0} Nat Bool (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Bool.false)\n              (@List.nil.{0} Holant.Complexity.RawEndpoint))))\n        (@List.cons.{0} Holant.Complexity.RawVertex\n          (@Prod.mk.{0, 0} Nat (List.{0} Holant.Complexity.RawEndpoint)\n            (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@List.cons.{0} Holant.Complexity.RawEndpoint\n              (@Prod.mk.{0, 0} Nat Bool (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) Bool.true)\n              (@List.cons.{0} Holant.Complexity.RawEndpoint\n                (@Prod.mk.{0, 0} Nat Bool (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) Bool.false)\n                (@List.nil.{0} Holant.Complexity.RawEndpoint))))\n          (@List.cons.{0} Holant.Complexity.RawVertex\n            (@Prod.mk.{0, 0} Nat (List.{0} Holant.Complexity.RawEndpoint)\n              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@List.cons.{0} Holant.Complexity.RawEndpoint\n                (@Prod.mk.{0, 0} Nat Bool (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) Bool.true)\n                (@List.cons.{0} Holant.Complexity.RawEndpoint\n                  (@Prod.mk.{0, 0} Nat Bool (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Bool.true)\n                  (@List.nil.{0} Holant.Complexity.RawEndpoint))))\n            (@List.nil.{0} Holant.Complexity.RawVertex)))))\n    (@List.cons.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n      (@List.cons.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n        (@List.cons.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n          (@List.cons.{0} Nat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) (@List.nil.{0} Nat))))))"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.Client.output_value","family":"gadget","import":"Counting.Reduction.FixedGadget.Client","kind":"theorem","module":"Counting.Reduction.FixedGadget.Client","name":"Counting.Reduction.FixedGadget.Client.output_value","name_semantics":"actual named kernel declaration","readable_type":"Eq\n  (Counting.Reduction.FixedGadget.value Counting.Reduction.FixedGadget.Client.base\n    Counting.Reduction.FixedGadget.Client.kernels Counting.Reduction.FixedGadget.Client.output)\n  858","role":"client","source_line":90,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Client.lean","source_sha256":"0aee0f86a758725f6f1f38dc35a3b31b8be45e55c380b37dc9a2eaeea9bbf6f5","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Client.lean#L90","type":"@Eq.{1} Nat\n  (@Counting.Reduction.FixedGadget.value (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity Nat\n    Nat.instCommSemiring Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels\n    Counting.Reduction.FixedGadget.Client.output)\n  (@OfNat.ofNat.{0} Nat (nat_lit 858) (instOfNatNat (nat_lit 858)))"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.FieldClient.repeated_exact","family":"gadget","import":"Counting.Reduction.FixedGadget.FieldClient","kind":"theorem","module":"Counting.Reduction.FixedGadget.FieldClient","name":"Counting.Reduction.FixedGadget.FieldClient.repeated_exact","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {n : Nat} (F : Holant.Algebraic.FixedField K n)\n  (T : Holant.Complexity.ExactSignatureTables n 1 1 Counting.Reduction.FixedGadget.Client.arity),\n  Eq (Holant.Complexity.ExactSignatureTables.evaluate F T Counting.Reduction.FixedGadget.Client.output)\n    (Holant.Complexity.ExactSignatureTables.evaluate F\n      (Counting.Reduction.FixedGadget.exactSource F Counting.Reduction.FixedGadget.Client.templates\n        Counting.Reduction.FixedGadget.Client.templates_valid T)\n      Counting.Reduction.FixedGadget.Client.repeated)","role":"client","source_line":14,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/FieldClient.lean","source_sha256":"da113afbe2bf5b89da342b3af75316610c0bb47bb90521cac408bc667e9e7e9c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/FieldClient.lean#L14","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {n : Nat} (F : @Holant.Algebraic.FixedField.{0} K inst inst_1 n)\n  (T :\n    Holant.Complexity.ExactSignatureTables n (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity),\n  @Eq.{1} K\n    (@Holant.Complexity.ExactSignatureTables.evaluate n (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity K inst\n      inst_1 F T Counting.Reduction.FixedGadget.Client.output)\n    (@Holant.Complexity.ExactSignatureTables.evaluate n (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity Counting.Reduction.FixedGadget.Client.templates) K inst\n      inst_1 F\n      (@Counting.Reduction.FixedGadget.exactSource K inst inst_1 n\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) Counting.Reduction.FixedGadget.Client.arity F\n        Counting.Reduction.FixedGadget.Client.templates Counting.Reduction.FixedGadget.Client.templates_valid T)\n      Counting.Reduction.FixedGadget.Client.repeated)"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.FieldClient.repeated_oracle_run","family":"gadget","import":"Counting.Reduction.FixedGadget.FieldClient","kind":"definition","module":"Counting.Reduction.FixedGadget.FieldClient","name":"Counting.Reduction.FixedGadget.FieldClient.repeated_oracle_run","name_semantics":"actual named kernel declaration","readable_type":"{K : Type} →\n  [inst : Field K] →\n    [inst_1 : Algebra Rat K] →\n      {n : Nat} →\n        (F : Holant.Algebraic.FixedField K n) →\n          (T : Holant.Complexity.ExactSignatureTables n 1 1 Counting.Reduction.FixedGadget.Client.arity) →\n            (oracle : List Bool → List Bool) →\n              Holant.Complexity.RepresentsOracle\n                  (Holant.Complexity.RawClosedNetwork.validatedEncoding 1 1 Counting.Reduction.FixedGadget.Client.arity)\n                  F.encoding (Holant.Complexity.ExactSignatureTables.evaluate F T) oracle →\n                (Counting.Reduction.FixedGadget.exactReduction F Counting.Reduction.FixedGadget.Client.templates\n                        Counting.Reduction.FixedGadget.Client.templates_valid T).machine.OutputsInTime\n                  oracle\n                  ((Holant.Complexity.RawClosedNetwork.validatedEncoding 2 1\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity\n                          Counting.Reduction.FixedGadget.Client.templates)).encode\n                    Counting.Reduction.FixedGadget.Client.repeated)\n                  (F.encoding.encode\n                    (Holant.Complexity.ExactSignatureTables.evaluate F\n                      (Counting.Reduction.FixedGadget.exactSource F Counting.Reduction.FixedGadget.Client.templates\n                        Counting.Reduction.FixedGadget.Client.templates_valid T)\n                      Counting.Reduction.FixedGadget.Client.repeated))\n                  (Polynomial.eval\n                    ((Holant.Complexity.RawClosedNetwork.validatedEncoding 2 1\n                            (Holant.Complexity.FixedGadgetSubstitution.sourceArity\n                              Counting.Reduction.FixedGadget.Client.templates)).encode\n                        Counting.Reduction.FixedGadget.Client.repeated).length\n                    (Counting.Reduction.FixedGadget.exactReduction F Counting.Reduction.FixedGadget.Client.templates\n                        Counting.Reduction.FixedGadget.Client.templates_valid T).time)","role":"client","source_line":20,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/FieldClient.lean","source_sha256":"da113afbe2bf5b89da342b3af75316610c0bb47bb90521cac408bc667e9e7e9c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/FieldClient.lean#L20","type":"{K : Type} →\n  [inst : Field.{0} K] →\n    [inst_1 :\n        @Algebra.{0, 0} Rat K Rat.commSemiring\n          (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))] →\n      {n : Nat} →\n        (F : @Holant.Algebraic.FixedField.{0} K inst inst_1 n) →\n          (T :\n              Holant.Complexity.ExactSignatureTables n (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Reduction.FixedGadget.Client.arity) →\n            (oracle : List.{0} Bool → List.{0} Bool) →\n              (ho :\n                  @Holant.Complexity.RepresentsOracle\n                    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity r)\n                    K\n                    (Holant.Complexity.RawClosedNetwork.validatedEncoding\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Reduction.FixedGadget.Client.arity)\n                    (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 n F)\n                    (@Holant.Complexity.ExactSignatureTables.evaluate n\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Reduction.FixedGadget.Client.arity K inst inst_1 F T)\n                    oracle) →\n                Holant.Complexity.OracleMachine.OutputsInTime\n                  (@Holant.Complexity.PolyTimeOracleReduction.machine\n                    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity\n                          Counting.Reduction.FixedGadget.Client.templates)\n                        r)\n                    K\n                    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity r)\n                    K\n                    (Holant.Complexity.RawClosedNetwork.validatedEncoding\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity\n                        Counting.Reduction.FixedGadget.Client.templates))\n                    (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 n F)\n                    (Holant.Complexity.RawClosedNetwork.validatedEncoding\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Reduction.FixedGadget.Client.arity)\n                    (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 n F)\n                    (@Holant.Complexity.ExactSignatureTables.evaluate n\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity\n                        Counting.Reduction.FixedGadget.Client.templates)\n                      K inst inst_1 F\n                      (@Counting.Reduction.FixedGadget.exactSource K inst inst_1 n\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity F Counting.Reduction.FixedGadget.Client.templates\n                        Counting.Reduction.FixedGadget.Client.templates_valid T))\n                    (@Holant.Complexity.ExactSignatureTables.evaluate n\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Reduction.FixedGadget.Client.arity K inst inst_1 F T)\n                    (@Counting.Reduction.FixedGadget.exactReduction K inst inst_1 n\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Reduction.FixedGadget.Client.arity F Counting.Reduction.FixedGadget.Client.templates\n                      Counting.Reduction.FixedGadget.Client.templates_valid T))\n                  oracle\n                  (@Computability.Encoding.encode.{0, 0}\n                    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity\n                          Counting.Reduction.FixedGadget.Client.templates)\n                        r)\n                    Bool\n                    (Holant.Complexity.RawClosedNetwork.validatedEncoding\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity\n                        Counting.Reduction.FixedGadget.Client.templates))\n                    Counting.Reduction.FixedGadget.Client.repeated)\n                  (@Computability.Encoding.encode.{0, 0} K Bool\n                    (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 n F)\n                    (@Holant.Complexity.ExactSignatureTables.evaluate n\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity\n                        Counting.Reduction.FixedGadget.Client.templates)\n                      K inst inst_1 F\n                      (@Counting.Reduction.FixedGadget.exactSource K inst inst_1 n\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity F Counting.Reduction.FixedGadget.Client.templates\n                        Counting.Reduction.FixedGadget.Client.templates_valid T)\n                      Counting.Reduction.FixedGadget.Client.repeated))\n                  (@Polynomial.eval.{0} Nat Nat.instSemiring\n                    (@List.length.{0} Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                          Holant.Complexity.RawClosedNetwork.WellFormed\n                            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            (Holant.Complexity.FixedGadgetSubstitution.sourceArity\n                              Counting.Reduction.FixedGadget.Client.templates)\n                            r)\n                        Bool\n                        (Holant.Complexity.RawClosedNetwork.validatedEncoding\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity\n                            Counting.Reduction.FixedGadget.Client.templates))\n                        Counting.Reduction.FixedGadget.Client.repeated))\n                    (@Holant.Complexity.PolyTimeOracleReduction.time\n                      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity\n                            Counting.Reduction.FixedGadget.Client.templates)\n                          r)\n                      K\n                      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Reduction.FixedGadget.Client.arity r)\n                      K\n                      (Holant.Complexity.RawClosedNetwork.validatedEncoding\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity\n                          Counting.Reduction.FixedGadget.Client.templates))\n                      (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 n F)\n                      (Holant.Complexity.RawClosedNetwork.validatedEncoding\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity)\n                      (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 n F)\n                      (@Holant.Complexity.ExactSignatureTables.evaluate n\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity\n                          Counting.Reduction.FixedGadget.Client.templates)\n                        K inst inst_1 F\n                        (@Counting.Reduction.FixedGadget.exactSource K inst inst_1 n\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Reduction.FixedGadget.Client.arity F Counting.Reduction.FixedGadget.Client.templates\n                          Counting.Reduction.FixedGadget.Client.templates_valid T))\n                      (@Holant.Complexity.ExactSignatureTables.evaluate n\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity K inst inst_1 F T)\n                      (@Counting.Reduction.FixedGadget.exactReduction K inst inst_1 n\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity F Counting.Reduction.FixedGadget.Client.templates\n                        Counting.Reduction.FixedGadget.Client.templates_valid T)))"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.Input","family":"gadget","import":"Counting.Reduction.FixedGadget.Basic","kind":"definition","module":"Counting.Reduction.FixedGadget.Basic","name":"Counting.Reduction.FixedGadget.Input","name_semantics":"actual named kernel declaration","readable_type":"Nat → Nat → (Nat → Nat) → Type","role":"public","source_line":13,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Basic.lean","source_sha256":"bee9417d78281689259a9ec12d71c39001f1c807de49eca34e14d00f4abd785f","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Basic.lean#L13","specification":"fun (count b : Nat) (arity : Nat → Nat) =>\n  @Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n    Holant.Complexity.RawClosedNetwork.WellFormed count b arity r","type":"(count b : Nat) → (arity : Nat → Nat) → Type"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.S1Client.at_false","family":"gadget","import":"Counting.Reduction.FixedGadget.S1Client","kind":"theorem","module":"Counting.Reduction.FixedGadget.S1Client","name":"Counting.Reduction.FixedGadget.S1Client.at_false","name_semantics":"actual named kernel declaration","readable_type":"Eq\n  ((Counting.Gadget.Substitution.compile Counting.Reduction.FixedGadget.S1Client.gadgets\n        Counting.Reduction.FixedGadget.S1Client.source).partition\n    fun x => Bool.false)\n  98","role":"client","source_line":57,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/S1Client.lean","source_sha256":"cdc9234c9a4456388a5b6bbe6855be08eefd811146815c515da1c8937c337a3c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/S1Client.lean#L57","type":"@Eq.{1} Nat\n  (@Counting.Model.OpenInstance.partition Bool Nat\n    (Sum.{0, 0}\n      (Fin\n        (@Counting.Model.KernelNetworkShape.vertices\n          (Fin\n            (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n              Counting.Reduction.FixedGadget.Client.binaryMacro))\n          (@Counting.Model.KernelNetwork.shape Bool Nat\n            (Fin\n              (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                Counting.Reduction.FixedGadget.Client.binaryMacro))\n            (@Counting.Bridge.Holant.adapt Nat\n              (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                Counting.Reduction.FixedGadget.Client.binaryMacro)\n              (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat Counting.Reduction.FixedGadget.Client.base\n                Counting.Reduction.FixedGadget.Client.kernels)))))\n      (Fin\n        (@Counting.Model.KernelNetworkShape.edges\n          (Fin\n            (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n              Counting.Reduction.FixedGadget.Client.binaryMacro))\n          (@Counting.Model.KernelNetwork.shape Bool Nat\n            (Fin\n              (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                Counting.Reduction.FixedGadget.Client.binaryMacro))\n            (@Counting.Bridge.Holant.adapt Nat\n              (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                Counting.Reduction.FixedGadget.Client.binaryMacro)\n              (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat Counting.Reduction.FixedGadget.Client.base\n                Counting.Reduction.FixedGadget.Client.kernels))))))\n    (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n    (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      (Fin\n        (@Counting.Gadget.Presentation.hidden Bool Nat\n          (Sum.{0, 0}\n            (Fin\n              (@Counting.Model.KernelNetworkShape.vertices\n                (Fin\n                  (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                    Counting.Reduction.FixedGadget.Client.binaryMacro))\n                (@Counting.Model.KernelNetwork.shape Bool Nat\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Bridge.Holant.adapt Nat\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro)\n                    (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                      Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                      Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n            (Fin\n              (@Counting.Model.KernelNetworkShape.edges\n                (Fin\n                  (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                    Counting.Reduction.FixedGadget.Client.binaryMacro))\n                (@Counting.Model.KernelNetwork.shape Bool Nat\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Bridge.Holant.adapt Nat\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro)\n                    (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                      Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                      Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n          Counting.Reduction.FixedGadget.S1Client.baseLanguage\n          (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n          (@Counting.Gadget.Substitution.expand Bool Nat\n            (Sum.{0, 0}\n              (Fin\n                (@Counting.Model.KernelNetworkShape.vertices\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n              (Fin\n                (@Counting.Model.KernelNetworkShape.edges\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            Counting.Reduction.FixedGadget.S1Client.baseLanguage Unit\n            Counting.Reduction.FixedGadget.S1Client.sourceLanguage Counting.Reduction.FixedGadget.S1Client.gadgets\n            Counting.Reduction.FixedGadget.S1Client.source))))\n    Counting.Reduction.FixedGadget.S1Client.baseLanguage Nat.instCommSemiring Bool.fintype\n    (@instFintypeSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      (Fin\n        (@Counting.Gadget.Presentation.hidden Bool Nat\n          (Sum.{0, 0}\n            (Fin\n              (@Counting.Model.KernelNetworkShape.vertices\n                (Fin\n                  (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                    Counting.Reduction.FixedGadget.Client.binaryMacro))\n                (@Counting.Model.KernelNetwork.shape Bool Nat\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Bridge.Holant.adapt Nat\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro)\n                    (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                      Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                      Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n            (Fin\n              (@Counting.Model.KernelNetworkShape.edges\n                (Fin\n                  (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                    Counting.Reduction.FixedGadget.Client.binaryMacro))\n                (@Counting.Model.KernelNetwork.shape Bool Nat\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Bridge.Holant.adapt Nat\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro)\n                    (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                      Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                      Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n          Counting.Reduction.FixedGadget.S1Client.baseLanguage\n          (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n          (@Counting.Gadget.Substitution.expand Bool Nat\n            (Sum.{0, 0}\n              (Fin\n                (@Counting.Model.KernelNetworkShape.vertices\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n              (Fin\n                (@Counting.Model.KernelNetworkShape.edges\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            Counting.Reduction.FixedGadget.S1Client.baseLanguage Unit\n            Counting.Reduction.FixedGadget.S1Client.sourceLanguage Counting.Reduction.FixedGadget.S1Client.gadgets\n            Counting.Reduction.FixedGadget.S1Client.source)))\n      (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      (Fin.fintype\n        (@Counting.Gadget.Presentation.hidden Bool Nat\n          (Sum.{0, 0}\n            (Fin\n              (@Counting.Model.KernelNetworkShape.vertices\n                (Fin\n                  (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                    Counting.Reduction.FixedGadget.Client.binaryMacro))\n                (@Counting.Model.KernelNetwork.shape Bool Nat\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Bridge.Holant.adapt Nat\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro)\n                    (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                      Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                      Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n            (Fin\n              (@Counting.Model.KernelNetworkShape.edges\n                (Fin\n                  (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                    Counting.Reduction.FixedGadget.Client.binaryMacro))\n                (@Counting.Model.KernelNetwork.shape Bool Nat\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Bridge.Holant.adapt Nat\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro)\n                    (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                      Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                      Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n          Counting.Reduction.FixedGadget.S1Client.baseLanguage\n          (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n          (@Counting.Gadget.Substitution.expand Bool Nat\n            (Sum.{0, 0}\n              (Fin\n                (@Counting.Model.KernelNetworkShape.vertices\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n              (Fin\n                (@Counting.Model.KernelNetworkShape.edges\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            Counting.Reduction.FixedGadget.S1Client.baseLanguage Unit\n            Counting.Reduction.FixedGadget.S1Client.sourceLanguage Counting.Reduction.FixedGadget.S1Client.gadgets\n            Counting.Reduction.FixedGadget.S1Client.source))))\n    (fun\n        (a b :\n          Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            (Fin\n              (@Counting.Gadget.Presentation.hidden Bool Nat\n                (Sum.{0, 0}\n                  (Fin\n                    (@Counting.Model.KernelNetworkShape.vertices\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Model.KernelNetwork.shape Bool Nat\n                        (Fin\n                          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                            Counting.Reduction.FixedGadget.Client.binaryMacro))\n                        (@Counting.Bridge.Holant.adapt Nat\n                          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                            Counting.Reduction.FixedGadget.Client.binaryMacro)\n                          (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            Counting.Reduction.FixedGadget.Client.arity\n                            Counting.Reduction.FixedGadget.Client.binaryMacro\n                            Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                            Counting.Reduction.FixedGadget.Client.base\n                            Counting.Reduction.FixedGadget.Client.kernels)))))\n                  (Fin\n                    (@Counting.Model.KernelNetworkShape.edges\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Model.KernelNetwork.shape Bool Nat\n                        (Fin\n                          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                            Counting.Reduction.FixedGadget.Client.binaryMacro))\n                        (@Counting.Bridge.Holant.adapt Nat\n                          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                            Counting.Reduction.FixedGadget.Client.binaryMacro)\n                          (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            Counting.Reduction.FixedGadget.Client.arity\n                            Counting.Reduction.FixedGadget.Client.binaryMacro\n                            Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                            Counting.Reduction.FixedGadget.Client.base\n                            Counting.Reduction.FixedGadget.Client.kernels))))))\n                Counting.Reduction.FixedGadget.S1Client.baseLanguage\n                (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                  (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n                (@Counting.Gadget.Substitution.expand Bool Nat\n                  (Sum.{0, 0}\n                    (Fin\n                      (@Counting.Model.KernelNetworkShape.vertices\n                        (Fin\n                          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                            Counting.Reduction.FixedGadget.Client.binaryMacro))\n                        (@Counting.Model.KernelNetwork.shape Bool Nat\n                          (Fin\n                            (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                              Counting.Reduction.FixedGadget.Client.binaryMacro))\n                          (@Counting.Bridge.Holant.adapt Nat\n                            (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                              Counting.Reduction.FixedGadget.Client.binaryMacro)\n                            (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                              Counting.Reduction.FixedGadget.Client.arity\n                              Counting.Reduction.FixedGadget.Client.binaryMacro\n                              Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                              Counting.Reduction.FixedGadget.Client.base\n                              Counting.Reduction.FixedGadget.Client.kernels)))))\n                    (Fin\n                      (@Counting.Model.KernelNetworkShape.edges\n                        (Fin\n                          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                            Counting.Reduction.FixedGadget.Client.binaryMacro))\n                        (@Counting.Model.KernelNetwork.shape Bool Nat\n                          (Fin\n                            (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                              Counting.Reduction.FixedGadget.Client.binaryMacro))\n                          (@Counting.Bridge.Holant.adapt Nat\n                            (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                              Counting.Reduction.FixedGadget.Client.binaryMacro)\n                            (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                              Counting.Reduction.FixedGadget.Client.arity\n                              Counting.Reduction.FixedGadget.Client.binaryMacro\n                              Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                              Counting.Reduction.FixedGadget.Client.base\n                              Counting.Reduction.FixedGadget.Client.kernels))))))\n                  (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                  (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                  Counting.Reduction.FixedGadget.S1Client.baseLanguage Unit\n                  Counting.Reduction.FixedGadget.S1Client.sourceLanguage Counting.Reduction.FixedGadget.S1Client.gadgets\n                  Counting.Reduction.FixedGadget.S1Client.source)))) =>\n      @instDecidableEqSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        (Fin\n          (@Counting.Gadget.Presentation.hidden Bool Nat\n            (Sum.{0, 0}\n              (Fin\n                (@Counting.Model.KernelNetworkShape.vertices\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n              (Fin\n                (@Counting.Model.KernelNetworkShape.edges\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n            Counting.Reduction.FixedGadget.S1Client.baseLanguage\n            (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n            (@Counting.Gadget.Substitution.expand Bool Nat\n              (Sum.{0, 0}\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.vertices\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Model.KernelNetwork.shape Bool Nat\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Bridge.Holant.adapt Nat\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro)\n                        (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                          Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                          Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.edges\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Model.KernelNetwork.shape Bool Nat\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Bridge.Holant.adapt Nat\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro)\n                        (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                          Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                          Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              Counting.Reduction.FixedGadget.S1Client.baseLanguage Unit\n              Counting.Reduction.FixedGadget.S1Client.sourceLanguage Counting.Reduction.FixedGadget.S1Client.gadgets\n              Counting.Reduction.FixedGadget.S1Client.source)))\n        (instDecidableEqFin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        (instDecidableEqFin\n          (@Counting.Gadget.Presentation.hidden Bool Nat\n            (Sum.{0, 0}\n              (Fin\n                (@Counting.Model.KernelNetworkShape.vertices\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n              (Fin\n                (@Counting.Model.KernelNetworkShape.edges\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n            Counting.Reduction.FixedGadget.S1Client.baseLanguage\n            (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n            (@Counting.Gadget.Substitution.expand Bool Nat\n              (Sum.{0, 0}\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.vertices\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Model.KernelNetwork.shape Bool Nat\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Bridge.Holant.adapt Nat\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro)\n                        (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                          Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                          Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.edges\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Model.KernelNetwork.shape Bool Nat\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Bridge.Holant.adapt Nat\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro)\n                        (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                          Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                          Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              Counting.Reduction.FixedGadget.S1Client.baseLanguage Unit\n              Counting.Reduction.FixedGadget.S1Client.sourceLanguage Counting.Reduction.FixedGadget.S1Client.gadgets\n              Counting.Reduction.FixedGadget.S1Client.source)))\n        a b)\n    (@Counting.Gadget.Substitution.compile Bool Nat\n      (Sum.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.vertices\n            (Fin\n              (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                Counting.Reduction.FixedGadget.Client.binaryMacro))\n            (@Counting.Model.KernelNetwork.shape Bool Nat\n              (Fin\n                (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                  Counting.Reduction.FixedGadget.Client.binaryMacro))\n              (@Counting.Bridge.Holant.adapt Nat\n                (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                  Counting.Reduction.FixedGadget.Client.binaryMacro)\n                (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                  Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat Counting.Reduction.FixedGadget.Client.base\n                  Counting.Reduction.FixedGadget.Client.kernels)))))\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges\n            (Fin\n              (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                Counting.Reduction.FixedGadget.Client.binaryMacro))\n            (@Counting.Model.KernelNetwork.shape Bool Nat\n              (Fin\n                (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                  Counting.Reduction.FixedGadget.Client.binaryMacro))\n              (@Counting.Bridge.Holant.adapt Nat\n                (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                  Counting.Reduction.FixedGadget.Client.binaryMacro)\n                (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                  Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat Counting.Reduction.FixedGadget.Client.base\n                  Counting.Reduction.FixedGadget.Client.kernels))))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      Counting.Reduction.FixedGadget.S1Client.baseLanguage Unit Counting.Reduction.FixedGadget.S1Client.sourceLanguage\n      Counting.Reduction.FixedGadget.S1Client.gadgets Counting.Reduction.FixedGadget.S1Client.source)\n    fun (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))) => Bool.false)\n  (@OfNat.ofNat.{0} Nat (nat_lit 98) (instOfNatNat (nat_lit 98)))"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.S1Client.compiled_occurrences","family":"gadget","import":"Counting.Reduction.FixedGadget.S1Client","kind":"theorem","module":"Counting.Reduction.FixedGadget.S1Client","name":"Counting.Reduction.FixedGadget.S1Client.compiled_occurrences","name_semantics":"actual named kernel declaration","readable_type":"Eq\n  (Counting.Gadget.Substitution.compile Counting.Reduction.FixedGadget.S1Client.gadgets\n        Counting.Reduction.FixedGadget.S1Client.source).occurrences.length\n  6","role":"client","source_line":46,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/S1Client.lean","source_sha256":"cdc9234c9a4456388a5b6bbe6855be08eefd811146815c515da1c8937c337a3c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/S1Client.lean#L46","type":"@Eq.{1} Nat\n  (@List.length.{0}\n    (@Counting.Model.Occurrence Bool Nat\n      (Sum.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.vertices\n            (Fin\n              (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                Counting.Reduction.FixedGadget.Client.binaryMacro))\n            (@Counting.Model.KernelNetwork.shape Bool Nat\n              (Fin\n                (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                  Counting.Reduction.FixedGadget.Client.binaryMacro))\n              (@Counting.Bridge.Holant.adapt Nat\n                (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                  Counting.Reduction.FixedGadget.Client.binaryMacro)\n                (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                  Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat Counting.Reduction.FixedGadget.Client.base\n                  Counting.Reduction.FixedGadget.Client.kernels)))))\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges\n            (Fin\n              (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                Counting.Reduction.FixedGadget.Client.binaryMacro))\n            (@Counting.Model.KernelNetwork.shape Bool Nat\n              (Fin\n                (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                  Counting.Reduction.FixedGadget.Client.binaryMacro))\n              (@Counting.Bridge.Holant.adapt Nat\n                (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                  Counting.Reduction.FixedGadget.Client.binaryMacro)\n                (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                  Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat Counting.Reduction.FixedGadget.Client.base\n                  Counting.Reduction.FixedGadget.Client.kernels))))))\n      Counting.Reduction.FixedGadget.S1Client.baseLanguage\n      (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (Fin\n            (@Counting.Gadget.Presentation.hidden Bool Nat\n              (Sum.{0, 0}\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.vertices\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Model.KernelNetwork.shape Bool Nat\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Bridge.Holant.adapt Nat\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro)\n                        (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                          Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                          Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.edges\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Model.KernelNetwork.shape Bool Nat\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Bridge.Holant.adapt Nat\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro)\n                        (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                          Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                          Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n              Counting.Reduction.FixedGadget.S1Client.baseLanguage\n              (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n              (@Counting.Gadget.Substitution.expand Bool Nat\n                (Sum.{0, 0}\n                  (Fin\n                    (@Counting.Model.KernelNetworkShape.vertices\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Model.KernelNetwork.shape Bool Nat\n                        (Fin\n                          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                            Counting.Reduction.FixedGadget.Client.binaryMacro))\n                        (@Counting.Bridge.Holant.adapt Nat\n                          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                            Counting.Reduction.FixedGadget.Client.binaryMacro)\n                          (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            Counting.Reduction.FixedGadget.Client.arity\n                            Counting.Reduction.FixedGadget.Client.binaryMacro\n                            Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                            Counting.Reduction.FixedGadget.Client.base\n                            Counting.Reduction.FixedGadget.Client.kernels)))))\n                  (Fin\n                    (@Counting.Model.KernelNetworkShape.edges\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Model.KernelNetwork.shape Bool Nat\n                        (Fin\n                          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                            Counting.Reduction.FixedGadget.Client.binaryMacro))\n                        (@Counting.Bridge.Holant.adapt Nat\n                          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                            Counting.Reduction.FixedGadget.Client.binaryMacro)\n                          (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            Counting.Reduction.FixedGadget.Client.arity\n                            Counting.Reduction.FixedGadget.Client.binaryMacro\n                            Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                            Counting.Reduction.FixedGadget.Client.base\n                            Counting.Reduction.FixedGadget.Client.kernels))))))\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                Counting.Reduction.FixedGadget.S1Client.baseLanguage Unit\n                Counting.Reduction.FixedGadget.S1Client.sourceLanguage Counting.Reduction.FixedGadget.S1Client.gadgets\n                Counting.Reduction.FixedGadget.S1Client.source))))))\n    (@Counting.Model.OpenInstance.occurrences Bool Nat\n      (Sum.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.vertices\n            (Fin\n              (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                Counting.Reduction.FixedGadget.Client.binaryMacro))\n            (@Counting.Model.KernelNetwork.shape Bool Nat\n              (Fin\n                (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                  Counting.Reduction.FixedGadget.Client.binaryMacro))\n              (@Counting.Bridge.Holant.adapt Nat\n                (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                  Counting.Reduction.FixedGadget.Client.binaryMacro)\n                (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                  Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat Counting.Reduction.FixedGadget.Client.base\n                  Counting.Reduction.FixedGadget.Client.kernels)))))\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges\n            (Fin\n              (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                Counting.Reduction.FixedGadget.Client.binaryMacro))\n            (@Counting.Model.KernelNetwork.shape Bool Nat\n              (Fin\n                (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                  Counting.Reduction.FixedGadget.Client.binaryMacro))\n              (@Counting.Bridge.Holant.adapt Nat\n                (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                  Counting.Reduction.FixedGadget.Client.binaryMacro)\n                (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                  Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat Counting.Reduction.FixedGadget.Client.base\n                  Counting.Reduction.FixedGadget.Client.kernels))))))\n      Counting.Reduction.FixedGadget.S1Client.baseLanguage\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n      (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        (Fin\n          (@Counting.Gadget.Presentation.hidden Bool Nat\n            (Sum.{0, 0}\n              (Fin\n                (@Counting.Model.KernelNetworkShape.vertices\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n              (Fin\n                (@Counting.Model.KernelNetworkShape.edges\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n            Counting.Reduction.FixedGadget.S1Client.baseLanguage\n            (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n            (@Counting.Gadget.Substitution.expand Bool Nat\n              (Sum.{0, 0}\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.vertices\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Model.KernelNetwork.shape Bool Nat\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Bridge.Holant.adapt Nat\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro)\n                        (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                          Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                          Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.edges\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Model.KernelNetwork.shape Bool Nat\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Bridge.Holant.adapt Nat\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro)\n                        (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                          Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                          Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              Counting.Reduction.FixedGadget.S1Client.baseLanguage Unit\n              Counting.Reduction.FixedGadget.S1Client.sourceLanguage Counting.Reduction.FixedGadget.S1Client.gadgets\n              Counting.Reduction.FixedGadget.S1Client.source))))\n      (@Counting.Gadget.Substitution.compile Bool Nat\n        (Sum.{0, 0}\n          (Fin\n            (@Counting.Model.KernelNetworkShape.vertices\n              (Fin\n                (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                  Counting.Reduction.FixedGadget.Client.binaryMacro))\n              (@Counting.Model.KernelNetwork.shape Bool Nat\n                (Fin\n                  (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                    Counting.Reduction.FixedGadget.Client.binaryMacro))\n                (@Counting.Bridge.Holant.adapt Nat\n                  (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                    Counting.Reduction.FixedGadget.Client.binaryMacro)\n                  (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                    Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                    Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n          (Fin\n            (@Counting.Model.KernelNetworkShape.edges\n              (Fin\n                (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                  Counting.Reduction.FixedGadget.Client.binaryMacro))\n              (@Counting.Model.KernelNetwork.shape Bool Nat\n                (Fin\n                  (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                    Counting.Reduction.FixedGadget.Client.binaryMacro))\n                (@Counting.Bridge.Holant.adapt Nat\n                  (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                    Counting.Reduction.FixedGadget.Client.binaryMacro)\n                  (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                    Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                    Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        Counting.Reduction.FixedGadget.S1Client.baseLanguage Unit Counting.Reduction.FixedGadget.S1Client.sourceLanguage\n        Counting.Reduction.FixedGadget.S1Client.gadgets Counting.Reduction.FixedGadget.S1Client.source)))\n  (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6)))"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.S1Client.partition","family":"gadget","import":"Counting.Reduction.FixedGadget.S1Client","kind":"theorem","module":"Counting.Reduction.FixedGadget.S1Client","name":"Counting.Reduction.FixedGadget.S1Client.partition","name_semantics":"actual named kernel declaration","readable_type":"∀ (x : Fin 2 → Bool),\n  Eq\n    ((Counting.Gadget.Substitution.compile Counting.Reduction.FixedGadget.S1Client.gadgets\n          Counting.Reduction.FixedGadget.S1Client.source).partition\n      x)\n    (instHMul.hMul 2 (instHPow.hPow (Counting.Reduction.FixedGadget.Client.extended 1 x) 2))","role":"client","source_line":51,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/S1Client.lean","source_sha256":"cdc9234c9a4456388a5b6bbe6855be08eefd811146815c515da1c8937c337a3c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/S1Client.lean#L51","type":"∀ (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) → Bool),\n  @Eq.{1} Nat\n    (@Counting.Model.OpenInstance.partition Bool Nat\n      (Sum.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.vertices\n            (Fin\n              (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                Counting.Reduction.FixedGadget.Client.binaryMacro))\n            (@Counting.Model.KernelNetwork.shape Bool Nat\n              (Fin\n                (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                  Counting.Reduction.FixedGadget.Client.binaryMacro))\n              (@Counting.Bridge.Holant.adapt Nat\n                (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                  Counting.Reduction.FixedGadget.Client.binaryMacro)\n                (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                  Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat Counting.Reduction.FixedGadget.Client.base\n                  Counting.Reduction.FixedGadget.Client.kernels)))))\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges\n            (Fin\n              (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                Counting.Reduction.FixedGadget.Client.binaryMacro))\n            (@Counting.Model.KernelNetwork.shape Bool Nat\n              (Fin\n                (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                  Counting.Reduction.FixedGadget.Client.binaryMacro))\n              (@Counting.Bridge.Holant.adapt Nat\n                (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                  Counting.Reduction.FixedGadget.Client.binaryMacro)\n                (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                  Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat Counting.Reduction.FixedGadget.Client.base\n                  Counting.Reduction.FixedGadget.Client.kernels))))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n      (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        (Fin\n          (@Counting.Gadget.Presentation.hidden Bool Nat\n            (Sum.{0, 0}\n              (Fin\n                (@Counting.Model.KernelNetworkShape.vertices\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n              (Fin\n                (@Counting.Model.KernelNetworkShape.edges\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n            Counting.Reduction.FixedGadget.S1Client.baseLanguage\n            (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n            (@Counting.Gadget.Substitution.expand Bool Nat\n              (Sum.{0, 0}\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.vertices\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Model.KernelNetwork.shape Bool Nat\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Bridge.Holant.adapt Nat\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro)\n                        (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                          Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                          Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.edges\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Model.KernelNetwork.shape Bool Nat\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Bridge.Holant.adapt Nat\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro)\n                        (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                          Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                          Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              Counting.Reduction.FixedGadget.S1Client.baseLanguage Unit\n              Counting.Reduction.FixedGadget.S1Client.sourceLanguage Counting.Reduction.FixedGadget.S1Client.gadgets\n              Counting.Reduction.FixedGadget.S1Client.source))))\n      Counting.Reduction.FixedGadget.S1Client.baseLanguage Nat.instCommSemiring Bool.fintype\n      (@instFintypeSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        (Fin\n          (@Counting.Gadget.Presentation.hidden Bool Nat\n            (Sum.{0, 0}\n              (Fin\n                (@Counting.Model.KernelNetworkShape.vertices\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n              (Fin\n                (@Counting.Model.KernelNetworkShape.edges\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n            Counting.Reduction.FixedGadget.S1Client.baseLanguage\n            (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n            (@Counting.Gadget.Substitution.expand Bool Nat\n              (Sum.{0, 0}\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.vertices\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Model.KernelNetwork.shape Bool Nat\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Bridge.Holant.adapt Nat\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro)\n                        (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                          Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                          Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.edges\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Model.KernelNetwork.shape Bool Nat\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Bridge.Holant.adapt Nat\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro)\n                        (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                          Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                          Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              Counting.Reduction.FixedGadget.S1Client.baseLanguage Unit\n              Counting.Reduction.FixedGadget.S1Client.sourceLanguage Counting.Reduction.FixedGadget.S1Client.gadgets\n              Counting.Reduction.FixedGadget.S1Client.source)))\n        (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        (Fin.fintype\n          (@Counting.Gadget.Presentation.hidden Bool Nat\n            (Sum.{0, 0}\n              (Fin\n                (@Counting.Model.KernelNetworkShape.vertices\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n              (Fin\n                (@Counting.Model.KernelNetworkShape.edges\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n            Counting.Reduction.FixedGadget.S1Client.baseLanguage\n            (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n            (@Counting.Gadget.Substitution.expand Bool Nat\n              (Sum.{0, 0}\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.vertices\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Model.KernelNetwork.shape Bool Nat\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Bridge.Holant.adapt Nat\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro)\n                        (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                          Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                          Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.edges\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Model.KernelNetwork.shape Bool Nat\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Bridge.Holant.adapt Nat\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro)\n                        (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                          Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                          Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              Counting.Reduction.FixedGadget.S1Client.baseLanguage Unit\n              Counting.Reduction.FixedGadget.S1Client.sourceLanguage Counting.Reduction.FixedGadget.S1Client.gadgets\n              Counting.Reduction.FixedGadget.S1Client.source))))\n      (fun\n          (a b :\n            Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              (Fin\n                (@Counting.Gadget.Presentation.hidden Bool Nat\n                  (Sum.{0, 0}\n                    (Fin\n                      (@Counting.Model.KernelNetworkShape.vertices\n                        (Fin\n                          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                            Counting.Reduction.FixedGadget.Client.binaryMacro))\n                        (@Counting.Model.KernelNetwork.shape Bool Nat\n                          (Fin\n                            (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                              Counting.Reduction.FixedGadget.Client.binaryMacro))\n                          (@Counting.Bridge.Holant.adapt Nat\n                            (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                              Counting.Reduction.FixedGadget.Client.binaryMacro)\n                            (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                              Counting.Reduction.FixedGadget.Client.arity\n                              Counting.Reduction.FixedGadget.Client.binaryMacro\n                              Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                              Counting.Reduction.FixedGadget.Client.base\n                              Counting.Reduction.FixedGadget.Client.kernels)))))\n                    (Fin\n                      (@Counting.Model.KernelNetworkShape.edges\n                        (Fin\n                          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                            Counting.Reduction.FixedGadget.Client.binaryMacro))\n                        (@Counting.Model.KernelNetwork.shape Bool Nat\n                          (Fin\n                            (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                              Counting.Reduction.FixedGadget.Client.binaryMacro))\n                          (@Counting.Bridge.Holant.adapt Nat\n                            (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                              Counting.Reduction.FixedGadget.Client.binaryMacro)\n                            (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                              Counting.Reduction.FixedGadget.Client.arity\n                              Counting.Reduction.FixedGadget.Client.binaryMacro\n                              Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                              Counting.Reduction.FixedGadget.Client.base\n                              Counting.Reduction.FixedGadget.Client.kernels))))))\n                  Counting.Reduction.FixedGadget.S1Client.baseLanguage\n                  (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                    (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n                  (@Counting.Gadget.Substitution.expand Bool Nat\n                    (Sum.{0, 0}\n                      (Fin\n                        (@Counting.Model.KernelNetworkShape.vertices\n                          (Fin\n                            (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                              Counting.Reduction.FixedGadget.Client.binaryMacro))\n                          (@Counting.Model.KernelNetwork.shape Bool Nat\n                            (Fin\n                              (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                                Counting.Reduction.FixedGadget.Client.binaryMacro))\n                            (@Counting.Bridge.Holant.adapt Nat\n                              (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                                Counting.Reduction.FixedGadget.Client.binaryMacro)\n                              (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                                Counting.Reduction.FixedGadget.Client.arity\n                                Counting.Reduction.FixedGadget.Client.binaryMacro\n                                Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                                Counting.Reduction.FixedGadget.Client.base\n                                Counting.Reduction.FixedGadget.Client.kernels)))))\n                      (Fin\n                        (@Counting.Model.KernelNetworkShape.edges\n                          (Fin\n                            (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                              Counting.Reduction.FixedGadget.Client.binaryMacro))\n                          (@Counting.Model.KernelNetwork.shape Bool Nat\n                            (Fin\n                              (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                                Counting.Reduction.FixedGadget.Client.binaryMacro))\n                            (@Counting.Bridge.Holant.adapt Nat\n                              (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                                Counting.Reduction.FixedGadget.Client.binaryMacro)\n                              (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                                Counting.Reduction.FixedGadget.Client.arity\n                                Counting.Reduction.FixedGadget.Client.binaryMacro\n                                Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                                Counting.Reduction.FixedGadget.Client.base\n                                Counting.Reduction.FixedGadget.Client.kernels))))))\n                    (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                    (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                    Counting.Reduction.FixedGadget.S1Client.baseLanguage Unit\n                    Counting.Reduction.FixedGadget.S1Client.sourceLanguage\n                    Counting.Reduction.FixedGadget.S1Client.gadgets\n                    Counting.Reduction.FixedGadget.S1Client.source)))) =>\n        @instDecidableEqSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (Fin\n            (@Counting.Gadget.Presentation.hidden Bool Nat\n              (Sum.{0, 0}\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.vertices\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Model.KernelNetwork.shape Bool Nat\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Bridge.Holant.adapt Nat\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro)\n                        (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                          Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                          Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.edges\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Model.KernelNetwork.shape Bool Nat\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Bridge.Holant.adapt Nat\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro)\n                        (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                          Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                          Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n              Counting.Reduction.FixedGadget.S1Client.baseLanguage\n              (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n              (@Counting.Gadget.Substitution.expand Bool Nat\n                (Sum.{0, 0}\n                  (Fin\n                    (@Counting.Model.KernelNetworkShape.vertices\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Model.KernelNetwork.shape Bool Nat\n                        (Fin\n                          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                            Counting.Reduction.FixedGadget.Client.binaryMacro))\n                        (@Counting.Bridge.Holant.adapt Nat\n                          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                            Counting.Reduction.FixedGadget.Client.binaryMacro)\n                          (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            Counting.Reduction.FixedGadget.Client.arity\n                            Counting.Reduction.FixedGadget.Client.binaryMacro\n                            Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                            Counting.Reduction.FixedGadget.Client.base\n                            Counting.Reduction.FixedGadget.Client.kernels)))))\n                  (Fin\n                    (@Counting.Model.KernelNetworkShape.edges\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Model.KernelNetwork.shape Bool Nat\n                        (Fin\n                          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                            Counting.Reduction.FixedGadget.Client.binaryMacro))\n                        (@Counting.Bridge.Holant.adapt Nat\n                          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                            Counting.Reduction.FixedGadget.Client.binaryMacro)\n                          (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            Counting.Reduction.FixedGadget.Client.arity\n                            Counting.Reduction.FixedGadget.Client.binaryMacro\n                            Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                            Counting.Reduction.FixedGadget.Client.base\n                            Counting.Reduction.FixedGadget.Client.kernels))))))\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                Counting.Reduction.FixedGadget.S1Client.baseLanguage Unit\n                Counting.Reduction.FixedGadget.S1Client.sourceLanguage Counting.Reduction.FixedGadget.S1Client.gadgets\n                Counting.Reduction.FixedGadget.S1Client.source)))\n          (instDecidableEqFin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (instDecidableEqFin\n            (@Counting.Gadget.Presentation.hidden Bool Nat\n              (Sum.{0, 0}\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.vertices\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Model.KernelNetwork.shape Bool Nat\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Bridge.Holant.adapt Nat\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro)\n                        (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                          Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                          Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.edges\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Model.KernelNetwork.shape Bool Nat\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Bridge.Holant.adapt Nat\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro)\n                        (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                          Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                          Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                          Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n              Counting.Reduction.FixedGadget.S1Client.baseLanguage\n              (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n              (@Counting.Gadget.Substitution.expand Bool Nat\n                (Sum.{0, 0}\n                  (Fin\n                    (@Counting.Model.KernelNetworkShape.vertices\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Model.KernelNetwork.shape Bool Nat\n                        (Fin\n                          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                            Counting.Reduction.FixedGadget.Client.binaryMacro))\n                        (@Counting.Bridge.Holant.adapt Nat\n                          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                            Counting.Reduction.FixedGadget.Client.binaryMacro)\n                          (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            Counting.Reduction.FixedGadget.Client.arity\n                            Counting.Reduction.FixedGadget.Client.binaryMacro\n                            Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                            Counting.Reduction.FixedGadget.Client.base\n                            Counting.Reduction.FixedGadget.Client.kernels)))))\n                  (Fin\n                    (@Counting.Model.KernelNetworkShape.edges\n                      (Fin\n                        (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                          Counting.Reduction.FixedGadget.Client.binaryMacro))\n                      (@Counting.Model.KernelNetwork.shape Bool Nat\n                        (Fin\n                          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                            Counting.Reduction.FixedGadget.Client.binaryMacro))\n                        (@Counting.Bridge.Holant.adapt Nat\n                          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                            Counting.Reduction.FixedGadget.Client.binaryMacro)\n                          (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                            Counting.Reduction.FixedGadget.Client.arity\n                            Counting.Reduction.FixedGadget.Client.binaryMacro\n                            Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                            Counting.Reduction.FixedGadget.Client.base\n                            Counting.Reduction.FixedGadget.Client.kernels))))))\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                Counting.Reduction.FixedGadget.S1Client.baseLanguage Unit\n                Counting.Reduction.FixedGadget.S1Client.sourceLanguage Counting.Reduction.FixedGadget.S1Client.gadgets\n                Counting.Reduction.FixedGadget.S1Client.source)))\n          a b)\n      (@Counting.Gadget.Substitution.compile Bool Nat\n        (Sum.{0, 0}\n          (Fin\n            (@Counting.Model.KernelNetworkShape.vertices\n              (Fin\n                (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                  Counting.Reduction.FixedGadget.Client.binaryMacro))\n              (@Counting.Model.KernelNetwork.shape Bool Nat\n                (Fin\n                  (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                    Counting.Reduction.FixedGadget.Client.binaryMacro))\n                (@Counting.Bridge.Holant.adapt Nat\n                  (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                    Counting.Reduction.FixedGadget.Client.binaryMacro)\n                  (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                    Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                    Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n          (Fin\n            (@Counting.Model.KernelNetworkShape.edges\n              (Fin\n                (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                  Counting.Reduction.FixedGadget.Client.binaryMacro))\n              (@Counting.Model.KernelNetwork.shape Bool Nat\n                (Fin\n                  (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                    Counting.Reduction.FixedGadget.Client.binaryMacro))\n                (@Counting.Bridge.Holant.adapt Nat\n                  (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                    Counting.Reduction.FixedGadget.Client.binaryMacro)\n                  (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                    Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                    Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        Counting.Reduction.FixedGadget.S1Client.baseLanguage Unit Counting.Reduction.FixedGadget.S1Client.sourceLanguage\n        Counting.Reduction.FixedGadget.S1Client.gadgets Counting.Reduction.FixedGadget.S1Client.source)\n      x)\n    (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)\n      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n        (Counting.Reduction.FixedGadget.Client.extended\n          (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))) (nat_lit 1)\n            (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (@Nat.instNeZeroSucc (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) (nat_lit 1)))\n          x)\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.S1Client.total_hidden","family":"gadget","import":"Counting.Reduction.FixedGadget.S1Client","kind":"theorem","module":"Counting.Reduction.FixedGadget.S1Client","name":"Counting.Reduction.FixedGadget.S1Client.total_hidden","name_semantics":"actual named kernel declaration","readable_type":"Eq\n  (Fintype.card\n    (Sum (Fin 1)\n      (Fin\n        (Counting.Gadget.Substitution.expand Counting.Reduction.FixedGadget.S1Client.gadgets\n            Counting.Reduction.FixedGadget.S1Client.source).hidden)))\n  5","role":"client","source_line":42,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/S1Client.lean","source_sha256":"cdc9234c9a4456388a5b6bbe6855be08eefd811146815c515da1c8937c337a3c","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/S1Client.lean#L42","type":"@Eq.{1} Nat\n  (@Fintype.card.{0}\n    (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      (Fin\n        (@Counting.Gadget.Presentation.hidden Bool Nat\n          (Sum.{0, 0}\n            (Fin\n              (@Counting.Model.KernelNetworkShape.vertices\n                (Fin\n                  (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                    Counting.Reduction.FixedGadget.Client.binaryMacro))\n                (@Counting.Model.KernelNetwork.shape Bool Nat\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Bridge.Holant.adapt Nat\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro)\n                    (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                      Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                      Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n            (Fin\n              (@Counting.Model.KernelNetworkShape.edges\n                (Fin\n                  (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                    Counting.Reduction.FixedGadget.Client.binaryMacro))\n                (@Counting.Model.KernelNetwork.shape Bool Nat\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Bridge.Holant.adapt Nat\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro)\n                    (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                      Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                      Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n          Counting.Reduction.FixedGadget.S1Client.baseLanguage\n          (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n          (@Counting.Gadget.Substitution.expand Bool Nat\n            (Sum.{0, 0}\n              (Fin\n                (@Counting.Model.KernelNetworkShape.vertices\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n              (Fin\n                (@Counting.Model.KernelNetworkShape.edges\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            Counting.Reduction.FixedGadget.S1Client.baseLanguage Unit\n            Counting.Reduction.FixedGadget.S1Client.sourceLanguage Counting.Reduction.FixedGadget.S1Client.gadgets\n            Counting.Reduction.FixedGadget.S1Client.source))))\n    (@instFintypeSum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      (Fin\n        (@Counting.Gadget.Presentation.hidden Bool Nat\n          (Sum.{0, 0}\n            (Fin\n              (@Counting.Model.KernelNetworkShape.vertices\n                (Fin\n                  (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                    Counting.Reduction.FixedGadget.Client.binaryMacro))\n                (@Counting.Model.KernelNetwork.shape Bool Nat\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Bridge.Holant.adapt Nat\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro)\n                    (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                      Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                      Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n            (Fin\n              (@Counting.Model.KernelNetworkShape.edges\n                (Fin\n                  (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                    Counting.Reduction.FixedGadget.Client.binaryMacro))\n                (@Counting.Model.KernelNetwork.shape Bool Nat\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Bridge.Holant.adapt Nat\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro)\n                    (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                      Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                      Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n          Counting.Reduction.FixedGadget.S1Client.baseLanguage\n          (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n          (@Counting.Gadget.Substitution.expand Bool Nat\n            (Sum.{0, 0}\n              (Fin\n                (@Counting.Model.KernelNetworkShape.vertices\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n              (Fin\n                (@Counting.Model.KernelNetworkShape.edges\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            Counting.Reduction.FixedGadget.S1Client.baseLanguage Unit\n            Counting.Reduction.FixedGadget.S1Client.sourceLanguage Counting.Reduction.FixedGadget.S1Client.gadgets\n            Counting.Reduction.FixedGadget.S1Client.source)))\n      (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      (Fin.fintype\n        (@Counting.Gadget.Presentation.hidden Bool Nat\n          (Sum.{0, 0}\n            (Fin\n              (@Counting.Model.KernelNetworkShape.vertices\n                (Fin\n                  (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                    Counting.Reduction.FixedGadget.Client.binaryMacro))\n                (@Counting.Model.KernelNetwork.shape Bool Nat\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Bridge.Holant.adapt Nat\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro)\n                    (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                      Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                      Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n            (Fin\n              (@Counting.Model.KernelNetworkShape.edges\n                (Fin\n                  (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                    Counting.Reduction.FixedGadget.Client.binaryMacro))\n                (@Counting.Model.KernelNetwork.shape Bool Nat\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Bridge.Holant.adapt Nat\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro)\n                    (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                      Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                      Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n          Counting.Reduction.FixedGadget.S1Client.baseLanguage\n          (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n          (@Counting.Gadget.Substitution.expand Bool Nat\n            (Sum.{0, 0}\n              (Fin\n                (@Counting.Model.KernelNetworkShape.vertices\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels)))))\n              (Fin\n                (@Counting.Model.KernelNetworkShape.edges\n                  (Fin\n                    (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                      Counting.Reduction.FixedGadget.Client.binaryMacro))\n                  (@Counting.Model.KernelNetwork.shape Bool Nat\n                    (Fin\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro))\n                    (@Counting.Bridge.Holant.adapt Nat\n                      (Holant.Complexity.FixedGadgetSubstitution.Template.boundary\n                        Counting.Reduction.FixedGadget.Client.binaryMacro)\n                      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0}\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                        Counting.Reduction.FixedGadget.Client.arity Counting.Reduction.FixedGadget.Client.binaryMacro\n                        Counting.Reduction.FixedGadget.Client.binaryMacro_valid Nat\n                        Counting.Reduction.FixedGadget.Client.base Counting.Reduction.FixedGadget.Client.kernels))))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            Counting.Reduction.FixedGadget.S1Client.baseLanguage Unit\n            Counting.Reduction.FixedGadget.S1Client.sourceLanguage Counting.Reduction.FixedGadget.S1Client.gadgets\n            Counting.Reduction.FixedGadget.S1Client.source)))))\n  (@OfNat.ofNat.{0} Nat (nat_lit 5) (instOfNatNat (nat_lit 5)))"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.compile","family":"gadget","import":"Counting.Reduction.FixedGadget.Basic","kind":"definition","module":"Counting.Reduction.FixedGadget.Basic","name":"Counting.Reduction.FixedGadget.compile","name_semantics":"actual named kernel declaration","readable_type":"{sourceCount s b : Nat} →\n  {arity : Nat → Nat} →\n    (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) →\n      (∀ (i : Nat),\n          instLTNat.lt i sourceCount →\n            Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i)) →\n        Counting.Reduction.FixedGadget.Input sourceCount b\n            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) →\n          Counting.Reduction.FixedGadget.Input s b arity","role":"public","source_line":17,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Basic.lean","source_sha256":"bee9417d78281689259a9ec12d71c39001f1c807de49eca34e14d00f4abd785f","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Basic.lean#L17","specification":"fun {sourceCount s b : Nat} {arity : Nat → Nat} (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n    (hg :\n      ∀ (i : Nat),\n        @LT.lt.{0} Nat instLTNat i sourceCount →\n          Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n    (r :\n      Counting.Reduction.FixedGadget.Input sourceCount b\n        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)) =>\n  @Subtype.mk.{1} Holant.Complexity.RawClosedNetwork\n    (fun (r : Holant.Complexity.RawClosedNetwork) => Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n    (Holant.Complexity.FixedGadgetSubstitution.replace templates\n      (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n        (fun (r : Holant.Complexity.RawClosedNetwork) =>\n          Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n        r))\n    (@Counting.Reduction.FixedGadget.compile._proof_1 sourceCount s b arity templates hg r)","type":"{sourceCount s b : Nat} →\n  {arity : Nat → Nat} →\n    (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) →\n      (hg :\n          ∀ (i : Nat),\n            @LT.lt.{0} Nat instLTNat i sourceCount →\n              Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i)) →\n        (r :\n            Counting.Reduction.FixedGadget.Input sourceCount b\n              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)) →\n          Counting.Reduction.FixedGadget.Input s b arity"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.compiler_inFP","family":"gadget","import":"Counting.Reduction.FixedGadget.Machine","kind":"theorem","module":"Counting.Reduction.FixedGadget.Machine","name":"Counting.Reduction.FixedGadget.compiler_inFP","name_semantics":"actual named kernel declaration","readable_type":"∀ {sourceCount s b : Nat} {arity : Nat → Nat} (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      instLTNat.lt i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i)),\n  Holant.Complexity.InFP\n    (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n    (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n    (Counting.Reduction.FixedGadget.compile templates hg)","role":"public","source_line":24,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Machine.lean","source_sha256":"9913d5cf4c04522ec626d045c3adbef6c7b3bacca7693caf52551404848279d3","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Machine.lean#L24","type":"∀ {sourceCount s b : Nat} {arity : Nat → Nat} (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      @LT.lt.{0} Nat instLTNat i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i)),\n  @Holant.Complexity.InFP\n    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n    Bool Bool Bool.fintype Bool.fintype\n    (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n    (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n    (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.computes","family":"gadget","import":"Counting.Reduction.FixedGadget.Machine","kind":"definition","module":"Counting.Reduction.FixedGadget.Machine","name":"Counting.Reduction.FixedGadget.computes","name_semantics":"actual named kernel declaration","readable_type":"{sourceCount s b : Nat} →\n  {arity : Nat → Nat} →\n    (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) →\n      (hg :\n          ∀ (i : Nat),\n            instLTNat.lt i sourceCount →\n              Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i)) →\n        Holant.Complexity.BinaryCompose.Computes\n          (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n          (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n          (Counting.Reduction.FixedGadget.compile templates hg)","role":"public","source_line":18,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Machine.lean","source_sha256":"9913d5cf4c04522ec626d045c3adbef6c7b3bacca7693caf52551404848279d3","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Machine.lean#L18","type":"{sourceCount s b : Nat} →\n  {arity : Nat → Nat} →\n    (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) →\n      (hg :\n          ∀ (i : Nat),\n            @LT.lt.{0} Nat instLTNat i sourceCount →\n              Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i)) →\n        @Holant.Complexity.BinaryCompose.Computes\n          (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n            Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n          (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n            Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n          (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n          (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n          (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.exactHardnessTransport","family":"gadget","import":"Counting.Reduction.FixedGadget.ExactField","kind":"definition","module":"Counting.Reduction.FixedGadget.ExactField","name":"Counting.Reduction.FixedGadget.exactHardnessTransport","name_semantics":"actual named kernel declaration","readable_type":"{K : Type} →\n  [inst : Field K] →\n    [inst_1 : Algebra Rat K] →\n      {n sourceCount s b : Nat} →\n        {arity : Nat → Nat} →\n          (F : Holant.Algebraic.FixedField K n) →\n            (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) →\n              (hg :\n                  ∀ (i : Nat),\n                    instLTNat.lt i sourceCount →\n                      Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i)) →\n                (T : Holant.Complexity.ExactSignatureTables n s b arity) →\n                  {α β : Type} →\n                    {ea : Computability.Encoding α Bool} →\n                      {eb : Computability.Encoding β Bool} →\n                        {f : α → β} →\n                          Holant.Complexity.LengthControlledOracleReduction ea eb\n                              (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                              F.encoding f\n                              (Holant.Complexity.ExactSignatureTables.evaluate F\n                                (Counting.Reduction.FixedGadget.exactSource F templates hg T)) →\n                            Holant.Complexity.PolyTimeOracleReduction ea eb\n                              (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity) F.encoding f\n                              (Holant.Complexity.ExactSignatureTables.evaluate F T)","role":"public","source_line":63,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/ExactField.lean","source_sha256":"0f87f234f40538d41c2d5afba9d18c725cf8fcf1c47b29166a338887b4601bd9","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/ExactField.lean#L63","type":"{K : Type} →\n  [inst : Field.{0} K] →\n    [inst_1 :\n        @Algebra.{0, 0} Rat K Rat.commSemiring\n          (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))] →\n      {n sourceCount s b : Nat} →\n        {arity : Nat → Nat} →\n          (F : @Holant.Algebraic.FixedField.{0} K inst inst_1 n) →\n            (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) →\n              (hg :\n                  ∀ (i : Nat),\n                    @LT.lt.{0} Nat instLTNat i sourceCount →\n                      Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i)) →\n                (T : Holant.Complexity.ExactSignatureTables n s b arity) →\n                  {α β : Type} →\n                    {ea : Computability.Encoding.{0, 0} α Bool} →\n                      {eb : Computability.Encoding.{0, 0} β Bool} →\n                        {f : α → β} →\n                          (caller :\n                              @Holant.Complexity.LengthControlledOracleReduction α β\n                                (@Subtype.{1} Holant.Complexity.RawClosedNetwork\n                                  fun (r : Holant.Complexity.RawClosedNetwork) =>\n                                  Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                                K ea eb\n                                (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                                (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 n F) f\n                                (@Holant.Complexity.ExactSignatureTables.evaluate n sourceCount b\n                                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) K inst inst_1 F\n                                  (@Counting.Reduction.FixedGadget.exactSource K inst inst_1 n sourceCount s b arity F\n                                    templates hg T))) →\n                            @Holant.Complexity.PolyTimeOracleReduction α β\n                              (@Subtype.{1} Holant.Complexity.RawClosedNetwork\n                                fun (r : Holant.Complexity.RawClosedNetwork) =>\n                                Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                              K ea eb (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                              (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 n F) f\n                              (@Holant.Complexity.ExactSignatureTables.evaluate n s b arity K inst inst_1 F T)"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.exactReduction","family":"gadget","import":"Counting.Reduction.FixedGadget.ExactField","kind":"definition","module":"Counting.Reduction.FixedGadget.ExactField","name":"Counting.Reduction.FixedGadget.exactReduction","name_semantics":"actual named kernel declaration","readable_type":"{K : Type} →\n  [inst : Field K] →\n    [inst_1 : Algebra Rat K] →\n      {n sourceCount s b : Nat} →\n        {arity : Nat → Nat} →\n          (F : Holant.Algebraic.FixedField K n) →\n            (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) →\n              (hg :\n                  ∀ (i : Nat),\n                    instLTNat.lt i sourceCount →\n                      Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i)) →\n                (T : Holant.Complexity.ExactSignatureTables n s b arity) →\n                  Holant.Complexity.PolyTimeOracleReduction\n                    (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                    F.encoding (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity) F.encoding\n                    (Holant.Complexity.ExactSignatureTables.evaluate F\n                      (Counting.Reduction.FixedGadget.exactSource F templates hg T))\n                    (Holant.Complexity.ExactSignatureTables.evaluate F T)","role":"public","source_line":34,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/ExactField.lean","source_sha256":"0f87f234f40538d41c2d5afba9d18c725cf8fcf1c47b29166a338887b4601bd9","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/ExactField.lean#L34","type":"{K : Type} →\n  [inst : Field.{0} K] →\n    [inst_1 :\n        @Algebra.{0, 0} Rat K Rat.commSemiring\n          (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))] →\n      {n sourceCount s b : Nat} →\n        {arity : Nat → Nat} →\n          (F : @Holant.Algebraic.FixedField.{0} K inst inst_1 n) →\n            (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) →\n              (hg :\n                  ∀ (i : Nat),\n                    @LT.lt.{0} Nat instLTNat i sourceCount →\n                      Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i)) →\n                (T : Holant.Complexity.ExactSignatureTables n s b arity) →\n                  @Holant.Complexity.PolyTimeOracleReduction\n                    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    K\n                    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    K\n                    (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                    (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 n F)\n                    (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                    (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 n F)\n                    (@Holant.Complexity.ExactSignatureTables.evaluate n sourceCount b\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) K inst inst_1 F\n                      (@Counting.Reduction.FixedGadget.exactSource K inst inst_1 n sourceCount s b arity F templates hg\n                        T))\n                    (@Holant.Complexity.ExactSignatureTables.evaluate n s b arity K inst inst_1 F T)"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.exactReduction_time","family":"gadget","import":"Counting.Reduction.FixedGadget.ExactField","kind":"theorem","module":"Counting.Reduction.FixedGadget.ExactField","name":"Counting.Reduction.FixedGadget.exactReduction_time","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {n sourceCount s b : Nat} {arity : Nat → Nat}\n  (F : Holant.Algebraic.FixedField K n) (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      instLTNat.lt i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  (T : Holant.Complexity.ExactSignatureTables n s b arity),\n  Eq (Counting.Reduction.FixedGadget.exactReduction F templates hg T).time\n    (instHAdd.hAdd\n      (instHAdd.hAdd (instHAdd.hAdd (Counting.Reduction.FixedGadget.computes templates hg).time 1)\n        (instHMul.hMul 2\n          (instHAdd.hAdd\n            (Holant.Complexity.OracleOneQuery.answerBound (Counting.Reduction.FixedGadget.computes templates hg)\n              (Holant.Complexity.ExactSignatureTables.outputBound F T))\n            1)))\n      ((Holant.Complexity.BinaryCompose.identityComputes F.encoding).time.comp\n        (Holant.Complexity.OracleOneQuery.answerBound (Counting.Reduction.FixedGadget.computes templates hg)\n          (Holant.Complexity.ExactSignatureTables.outputBound F T))))","role":"public","source_line":48,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/ExactField.lean","source_sha256":"0f87f234f40538d41c2d5afba9d18c725cf8fcf1c47b29166a338887b4601bd9","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/ExactField.lean#L48","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {n sourceCount s b : Nat} {arity : Nat → Nat} (F : @Holant.Algebraic.FixedField.{0} K inst inst_1 n)\n  (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      @LT.lt.{0} Nat instLTNat i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  (T : Holant.Complexity.ExactSignatureTables n s b arity),\n  @Eq.{1} (@Polynomial.{0} Nat Nat.instSemiring)\n    (@Holant.Complexity.PolyTimeOracleReduction.time\n      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n      K\n      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n        Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n      K\n      (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n      (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 n F)\n      (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n      (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 n F)\n      (@Holant.Complexity.ExactSignatureTables.evaluate n sourceCount b\n        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) K inst inst_1 F\n        (@Counting.Reduction.FixedGadget.exactSource K inst inst_1 n sourceCount s b arity F templates hg T))\n      (@Holant.Complexity.ExactSignatureTables.evaluate n s b arity K inst inst_1 F T)\n      (@Counting.Reduction.FixedGadget.exactReduction K inst inst_1 n sourceCount s b arity F templates hg T))\n    (@HAdd.hAdd.{0, 0, 0} (@Polynomial.{0} Nat Nat.instSemiring) (@Polynomial.{0} Nat Nat.instSemiring)\n      (@Polynomial.{0} Nat Nat.instSemiring)\n      (@instHAdd.{0} (@Polynomial.{0} Nat Nat.instSemiring) (@Polynomial.instAdd.{0} Nat Nat.instSemiring))\n      (@HAdd.hAdd.{0, 0, 0} (@Polynomial.{0} Nat Nat.instSemiring) (@Polynomial.{0} Nat Nat.instSemiring)\n        (@Polynomial.{0} Nat Nat.instSemiring)\n        (@instHAdd.{0} (@Polynomial.{0} Nat Nat.instSemiring) (@Polynomial.instAdd.{0} Nat Nat.instSemiring))\n        (@HAdd.hAdd.{0, 0, 0} (@Polynomial.{0} Nat Nat.instSemiring) (@Polynomial.{0} Nat Nat.instSemiring)\n          (@Polynomial.{0} Nat Nat.instSemiring)\n          (@instHAdd.{0} (@Polynomial.{0} Nat Nat.instSemiring) (@Polynomial.instAdd.{0} Nat Nat.instSemiring))\n          (@Holant.Complexity.BinaryCompose.Computes.time\n            (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n            (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n              Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n            (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n            (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n            (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n            (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg))\n          (@OfNat.ofNat.{0} (@Polynomial.{0} Nat Nat.instSemiring) (nat_lit 1)\n            (@One.toOfNat1.{0} (@Polynomial.{0} Nat Nat.instSemiring) (@Polynomial.instOne.{0} Nat Nat.instSemiring))))\n        (@HMul.hMul.{0, 0, 0} (@Polynomial.{0} Nat Nat.instSemiring) (@Polynomial.{0} Nat Nat.instSemiring)\n          (@Polynomial.{0} Nat Nat.instSemiring)\n          (@instHMul.{0} (@Polynomial.{0} Nat Nat.instSemiring) (@Polynomial.instMul.{0} Nat Nat.instSemiring))\n          (@OfNat.ofNat.{0} (@Polynomial.{0} Nat Nat.instSemiring) (nat_lit 2)\n            (@instOfNatAtLeastTwo.{0} (@Polynomial.{0} Nat Nat.instSemiring) (nat_lit 2)\n              (@Polynomial.instNatCast.{0} Nat Nat.instSemiring)\n              (@Nat.instAtLeastTwoHAddOfNat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@Nat.instNeZeroSucc (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))))))\n          (@HAdd.hAdd.{0, 0, 0} (@Polynomial.{0} Nat Nat.instSemiring) (@Polynomial.{0} Nat Nat.instSemiring)\n            (@Polynomial.{0} Nat Nat.instSemiring)\n            (@instHAdd.{0} (@Polynomial.{0} Nat Nat.instSemiring) (@Polynomial.instAdd.{0} Nat Nat.instSemiring))\n            (@Holant.Complexity.OracleOneQuery.answerBound\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n              K\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n              (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 n F)\n              (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n              (@Holant.Complexity.ExactSignatureTables.evaluate n s b arity K inst inst_1 F T)\n              (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg)\n              (@Holant.Complexity.ExactSignatureTables.outputBound n s b arity K inst inst_1 F T))\n            (@OfNat.ofNat.{0} (@Polynomial.{0} Nat Nat.instSemiring) (nat_lit 1)\n              (@One.toOfNat1.{0} (@Polynomial.{0} Nat Nat.instSemiring)\n                (@Polynomial.instOne.{0} Nat Nat.instSemiring))))))\n      (@Polynomial.comp.{0} Nat Nat.instSemiring\n        (@Holant.Complexity.BinaryCompose.Computes.time K K\n          (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 n F)\n          (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 n F) (@id.{1} K)\n          (@Holant.Complexity.BinaryCompose.identityComputes K\n            (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 n F)))\n        (@Holant.Complexity.OracleOneQuery.answerBound\n          (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n            Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n          (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n            Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n          K\n          (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n          (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n          (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 n F)\n          (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n          (@Holant.Complexity.ExactSignatureTables.evaluate n s b arity K inst inst_1 F T)\n          (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg)\n          (@Holant.Complexity.ExactSignatureTables.outputBound n s b arity K inst inst_1 F T))))"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.exactSource","family":"gadget","import":"Counting.Reduction.FixedGadget.ExactField","kind":"definition","module":"Counting.Reduction.FixedGadget.ExactField","name":"Counting.Reduction.FixedGadget.exactSource","name_semantics":"actual named kernel declaration","readable_type":"{K : Type} →\n  [inst : Field K] →\n    [inst_1 : Algebra Rat K] →\n      {n sourceCount s b : Nat} →\n        {arity : Nat → Nat} →\n          Holant.Algebraic.FixedField K n →\n            (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) →\n              (∀ (i : Nat),\n                  instLTNat.lt i sourceCount →\n                    Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i)) →\n                Holant.Complexity.ExactSignatureTables n s b arity →\n                  Holant.Complexity.ExactSignatureTables n sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)","role":"public","source_line":20,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/ExactField.lean","source_sha256":"0f87f234f40538d41c2d5afba9d18c725cf8fcf1c47b29166a338887b4601bd9","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/ExactField.lean#L20","specification":"fun {K : Type} [inst : Field.{0} K]\n    [inst_1 :\n      @Algebra.{0, 0} Rat K Rat.commSemiring\n        (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n    {n sourceCount s b : Nat} {arity : Nat → Nat} (F : @Holant.Algebraic.FixedField.{0} K inst inst_1 n)\n    (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n    (hg :\n      ∀ (i : Nat),\n        @LT.lt.{0} Nat instLTNat i sourceCount →\n          Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n    (T : Holant.Complexity.ExactSignatureTables n s b arity) =>\n  @Holant.Complexity.FixedGadgetSubstitution.sourceTables n sourceCount s b arity templates T\n    (@Holant.Complexity.FixedGadgetSubstitution.templateCoordinates K inst inst_1 n sourceCount s b arity F templates hg\n      T)","type":"{K : Type} →\n  [inst : Field.{0} K] →\n    [inst_1 :\n        @Algebra.{0, 0} Rat K Rat.commSemiring\n          (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))] →\n      {n sourceCount s b : Nat} →\n        {arity : Nat → Nat} →\n          (F : @Holant.Algebraic.FixedField.{0} K inst inst_1 n) →\n            (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) →\n              (hg :\n                  ∀ (i : Nat),\n                    @LT.lt.{0} Nat instLTNat i sourceCount →\n                      Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i)) →\n                (T : Holant.Complexity.ExactSignatureTables n s b arity) →\n                  Holant.Complexity.ExactSignatureTables n sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.exact_inFP_of_base","family":"gadget","import":"Counting.Reduction.FixedGadget.ExactField","kind":"theorem","module":"Counting.Reduction.FixedGadget.ExactField","name":"Counting.Reduction.FixedGadget.exact_inFP_of_base","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {n sourceCount s b : Nat} {arity : Nat → Nat}\n  (F : Holant.Algebraic.FixedField K n) (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      instLTNat.lt i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  (T : Holant.Complexity.ExactSignatureTables n s b arity),\n  Holant.Complexity.InFP (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity) F.encoding\n      (Holant.Complexity.ExactSignatureTables.evaluate F T) →\n    Holant.Complexity.InFP\n      (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n      F.encoding\n      (Holant.Complexity.ExactSignatureTables.evaluate F (Counting.Reduction.FixedGadget.exactSource F templates hg T))","role":"public","source_line":55,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/ExactField.lean","source_sha256":"0f87f234f40538d41c2d5afba9d18c725cf8fcf1c47b29166a338887b4601bd9","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/ExactField.lean#L55","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {n sourceCount s b : Nat} {arity : Nat → Nat} (F : @Holant.Algebraic.FixedField.{0} K inst inst_1 n)\n  (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      @LT.lt.{0} Nat instLTNat i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  (T : Holant.Complexity.ExactSignatureTables n s b arity)\n  (base :\n    @Holant.Complexity.InFP\n      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n        Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n      K Bool Bool Bool.fintype Bool.fintype (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n      (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 n F)\n      (@Holant.Complexity.ExactSignatureTables.evaluate n s b arity K inst inst_1 F T)),\n  @Holant.Complexity.InFP\n    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n    K Bool Bool Bool.fintype Bool.fintype\n    (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n    (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 n F)\n    (@Holant.Complexity.ExactSignatureTables.evaluate n sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) K inst inst_1 F\n      (@Counting.Reduction.FixedGadget.exactSource K inst inst_1 n sourceCount s b arity F templates hg T))"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.exact_value","family":"gadget","import":"Counting.Reduction.FixedGadget.ExactField","kind":"theorem","module":"Counting.Reduction.FixedGadget.ExactField","name":"Counting.Reduction.FixedGadget.exact_value","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : Field K] [inst_1 : Algebra Rat K] {n sourceCount s b : Nat} {arity : Nat → Nat}\n  (F : Holant.Algebraic.FixedField K n) (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      instLTNat.lt i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  (T : Holant.Complexity.ExactSignatureTables n s b arity)\n  (r :\n    Counting.Reduction.FixedGadget.Input sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)),\n  Eq (Holant.Complexity.ExactSignatureTables.evaluate F T (Counting.Reduction.FixedGadget.compile templates hg r))\n    (Holant.Complexity.ExactSignatureTables.evaluate F (Counting.Reduction.FixedGadget.exactSource F templates hg T) r)","role":"public","source_line":23,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/ExactField.lean","source_sha256":"0f87f234f40538d41c2d5afba9d18c725cf8fcf1c47b29166a338887b4601bd9","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/ExactField.lean#L23","type":"∀ {K : Type} [inst : Field.{0} K]\n  [inst_1 :\n    @Algebra.{0, 0} Rat K Rat.commSemiring\n      (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))]\n  {n sourceCount s b : Nat} {arity : Nat → Nat} (F : @Holant.Algebraic.FixedField.{0} K inst inst_1 n)\n  (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      @LT.lt.{0} Nat instLTNat i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  (T : Holant.Complexity.ExactSignatureTables n s b arity)\n  (r :\n    Counting.Reduction.FixedGadget.Input sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)),\n  @Eq.{1} K\n    (@Holant.Complexity.ExactSignatureTables.evaluate n s b arity K inst inst_1 F T\n      (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n    (@Holant.Complexity.ExactSignatureTables.evaluate n sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) K inst inst_1 F\n      (@Counting.Reduction.FixedGadget.exactSource K inst inst_1 n sourceCount s b arity F templates hg T) r)"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.extension_equivalent","family":"gadget","import":"Counting.Reduction.FixedGadget.Extension","kind":"theorem","module":"Counting.Reduction.FixedGadget.Extension","name":"Counting.Reduction.FixedGadget.extension_equivalent","name_semantics":"actual named kernel declaration","readable_type":"∀ {s t b : Nat} {arity : Nat → Nat} (hst : instLENat.le s t)\n  (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template),\n  Eq (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) arity →\n    ∀\n      (hg :\n        ∀ (i : Nat),\n          instLTNat.lt i t → Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n      (base : (i : Fin s) → Holant.Signature Nat (arity i.val))\n      (extension : (i : Fin t) → Holant.Signature Nat (arity i.val)) (kernels : Fin b → Bool → Bool → Nat),\n      (∀ (i : Fin s), Eq (extension ⟨i.val, ⋯⟩) (base i)) →\n        (∀ (i : Fin t),\n            HEq (Counting.Reduction.FixedGadget.macroSignatures templates hg base kernels i) (extension i)) →\n          Counting.Complexity.ParsimoniousEquivalent (Holant.Complexity.RawClosedNetwork.validatedEncoding t b arity)\n            (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n            (Counting.Reduction.FixedGadget.value extension kernels) (Counting.Reduction.FixedGadget.value base kernels)","role":"public","source_line":87,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Extension.lean","source_sha256":"0be74984c611f6ab4515cc87aef0d76e813b3803dd7e46e8d045f227cacfb029","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Extension.lean#L87","type":"∀ {s t b : Nat} {arity : Nat → Nat} (hst : @LE.le.{0} Nat instLENat s t)\n  (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hboundary : @Eq.{1} ((label : Nat) → Nat) (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) arity)\n  (hg :\n    ∀ (i : Nat),\n      @LT.lt.{0} Nat instLTNat i t →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  (base : (i : Fin s) → Holant.Signature.{0} Nat (arity (@Fin.val s i)))\n  (extension : (i : Fin t) → Holant.Signature.{0} Nat (arity (@Fin.val t i))) (kernels : Fin b → Bool → Bool → Nat)\n  (hprefix :\n    ∀ (i : Fin s),\n      @Eq.{1}\n        (Holant.Signature.{0} Nat\n          (arity\n            (@Fin.val t\n              (@Fin.mk t (@Fin.val s i)\n                (@lt_of_lt_of_le.{0} Nat Nat.instPreorder (@Fin.val s i) s t (@Fin.isLt s i) hst)))))\n        (extension\n          (@Fin.mk t (@Fin.val s i) (@lt_of_lt_of_le.{0} Nat Nat.instPreorder (@Fin.val s i) s t (@Fin.isLt s i) hst)))\n        (base i))\n  (hlocal :\n    ∀ (i : Fin t),\n      @HEq.{1}\n        (Holant.Signature.{0} Nat (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates (@Fin.val t i)))\n        (@Counting.Reduction.FixedGadget.macroSignatures t s b arity Nat Nat.instCommSemiring templates hg base kernels\n          i)\n        (Holant.Signature.{0} Nat (arity (@Fin.val t i))) (extension i)),\n  @Counting.Complexity.ParsimoniousEquivalent\n    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n      Holant.Complexity.RawClosedNetwork.WellFormed t b arity r)\n    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n    Bool Bool Bool.fintype Bool.fintype (Holant.Complexity.RawClosedNetwork.validatedEncoding t b arity)\n    (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n    (@Counting.Reduction.FixedGadget.value t b arity Nat Nat.instCommSemiring extension kernels)\n    (@Counting.Reduction.FixedGadget.value s b arity Nat Nat.instCommSemiring base kernels)"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.extension_hard_iff","family":"gadget","import":"Counting.Reduction.FixedGadget.Extension","kind":"theorem","module":"Counting.Reduction.FixedGadget.Extension","name":"Counting.Reduction.FixedGadget.extension_hard_iff","name_semantics":"actual named kernel declaration","readable_type":"∀ {s t b : Nat} {arity : Nat → Nat} {α Γ : Type} [inst : Fintype Γ] (inputEncoding : Computability.Encoding α Γ)\n  (C : (α → Nat) → Prop) (hst : instLENat.le s t)\n  (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template),\n  Eq (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) arity →\n    ∀\n      (hg :\n        ∀ (i : Nat),\n          instLTNat.lt i t → Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n      (base : (i : Fin s) → Holant.Signature Nat (arity i.val))\n      (extension : (i : Fin t) → Holant.Signature Nat (arity i.val)) (kernels : Fin b → Bool → Bool → Nat),\n      (∀ (i : Fin s), Eq (extension ⟨i.val, ⋯⟩) (base i)) →\n        (∀ (i : Fin t),\n            HEq (Counting.Reduction.FixedGadget.macroSignatures templates hg base kernels i) (extension i)) →\n          Iff\n            (Counting.Complexity.HardFor inputEncoding (Holant.Complexity.RawClosedNetwork.validatedEncoding t b arity)\n              C (Counting.Reduction.FixedGadget.value extension kernels))\n            (Counting.Complexity.HardFor inputEncoding (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n              C (Counting.Reduction.FixedGadget.value base kernels))","role":"public","source_line":103,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Extension.lean","source_sha256":"0be74984c611f6ab4515cc87aef0d76e813b3803dd7e46e8d045f227cacfb029","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Extension.lean#L103","type":"∀ {s t b : Nat} {arity : Nat → Nat} {α Γ : Type} [inst : Fintype.{0} Γ]\n  (inputEncoding : Computability.Encoding.{0, 0} α Γ) (C : (α → Nat) → Prop) (hst : @LE.le.{0} Nat instLENat s t)\n  (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hboundary : @Eq.{1} ((label : Nat) → Nat) (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) arity)\n  (hg :\n    ∀ (i : Nat),\n      @LT.lt.{0} Nat instLTNat i t →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  (base : (i : Fin s) → Holant.Signature.{0} Nat (arity (@Fin.val s i)))\n  (extension : (i : Fin t) → Holant.Signature.{0} Nat (arity (@Fin.val t i))) (kernels : Fin b → Bool → Bool → Nat)\n  (hprefix :\n    ∀ (i : Fin s),\n      @Eq.{1}\n        (Holant.Signature.{0} Nat\n          (arity\n            (@Fin.val t\n              (@Fin.mk t (@Fin.val s i)\n                (@lt_of_lt_of_le.{0} Nat Nat.instPreorder (@Fin.val s i) s t (@Fin.isLt s i) hst)))))\n        (extension\n          (@Fin.mk t (@Fin.val s i) (@lt_of_lt_of_le.{0} Nat Nat.instPreorder (@Fin.val s i) s t (@Fin.isLt s i) hst)))\n        (base i))\n  (hlocal :\n    ∀ (i : Fin t),\n      @HEq.{1}\n        (Holant.Signature.{0} Nat (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates (@Fin.val t i)))\n        (@Counting.Reduction.FixedGadget.macroSignatures t s b arity Nat Nat.instCommSemiring templates hg base kernels\n          i)\n        (Holant.Signature.{0} Nat (arity (@Fin.val t i))) (extension i)),\n  Iff\n    (@Counting.Complexity.HardFor α\n      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n        Holant.Complexity.RawClosedNetwork.WellFormed t b arity r)\n      Γ Bool inst Bool.fintype inputEncoding (Holant.Complexity.RawClosedNetwork.validatedEncoding t b arity) C\n      (@Counting.Reduction.FixedGadget.value t b arity Nat Nat.instCommSemiring extension kernels))\n    (@Counting.Complexity.HardFor α\n      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n        Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n      Γ Bool inst Bool.fintype inputEncoding (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity) C\n      (@Counting.Reduction.FixedGadget.value s b arity Nat Nat.instCommSemiring base kernels))"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.extension_inFP_iff","family":"gadget","import":"Counting.Reduction.FixedGadget.Extension","kind":"theorem","module":"Counting.Reduction.FixedGadget.Extension","name":"Counting.Reduction.FixedGadget.extension_inFP_iff","name_semantics":"actual named kernel declaration","readable_type":"∀ {s t b : Nat} {arity : Nat → Nat} {R Γ : Type} [inst : CommSemiring R] [inst_1 : Fintype Γ]\n  (answerEncoding : Computability.Encoding R Γ) (hst : instLENat.le s t)\n  (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template),\n  Eq (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) arity →\n    ∀\n      (hg :\n        ∀ (i : Nat),\n          instLTNat.lt i t → Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n      (base : (i : Fin s) → Holant.Signature R (arity i.val))\n      (extension : (i : Fin t) → Holant.Signature R (arity i.val)) (kernels : Fin b → Bool → Bool → R),\n      (∀ (i : Fin s), Eq (extension ⟨i.val, ⋯⟩) (base i)) →\n        (∀ (i : Fin t),\n            HEq (Counting.Reduction.FixedGadget.macroSignatures templates hg base kernels i) (extension i)) →\n          Iff\n            (Holant.Complexity.InFP (Holant.Complexity.RawClosedNetwork.validatedEncoding t b arity) answerEncoding\n              (Counting.Reduction.FixedGadget.value extension kernels))\n            (Holant.Complexity.InFP (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity) answerEncoding\n              (Counting.Reduction.FixedGadget.value base kernels))","role":"public","source_line":64,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Extension.lean","source_sha256":"0be74984c611f6ab4515cc87aef0d76e813b3803dd7e46e8d045f227cacfb029","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Extension.lean#L64","type":"∀ {s t b : Nat} {arity : Nat → Nat} {R Γ : Type} [inst : CommSemiring.{0} R] [inst_1 : Fintype.{0} Γ]\n  (answerEncoding : Computability.Encoding.{0, 0} R Γ) (hst : @LE.le.{0} Nat instLENat s t)\n  (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hboundary : @Eq.{1} ((label : Nat) → Nat) (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) arity)\n  (hg :\n    ∀ (i : Nat),\n      @LT.lt.{0} Nat instLTNat i t →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  (base : (i : Fin s) → Holant.Signature.{0} R (arity (@Fin.val s i)))\n  (extension : (i : Fin t) → Holant.Signature.{0} R (arity (@Fin.val t i))) (kernels : Fin b → Bool → Bool → R)\n  (hprefix :\n    ∀ (i : Fin s),\n      @Eq.{1}\n        (Holant.Signature.{0} R\n          (arity\n            (@Fin.val t\n              (@Fin.mk t (@Fin.val s i)\n                (@lt_of_lt_of_le.{0} Nat Nat.instPreorder (@Fin.val s i) s t (@Fin.isLt s i) hst)))))\n        (extension\n          (@Fin.mk t (@Fin.val s i) (@lt_of_lt_of_le.{0} Nat Nat.instPreorder (@Fin.val s i) s t (@Fin.isLt s i) hst)))\n        (base i))\n  (hlocal :\n    ∀ (i : Fin t),\n      @HEq.{1} (Holant.Signature.{0} R (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates (@Fin.val t i)))\n        (@Counting.Reduction.FixedGadget.macroSignatures t s b arity R inst templates hg base kernels i)\n        (Holant.Signature.{0} R (arity (@Fin.val t i))) (extension i)),\n  Iff\n    (@Holant.Complexity.InFP\n      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n        Holant.Complexity.RawClosedNetwork.WellFormed t b arity r)\n      R Bool Γ Bool.fintype inst_1 (Holant.Complexity.RawClosedNetwork.validatedEncoding t b arity) answerEncoding\n      (@Counting.Reduction.FixedGadget.value t b arity R inst extension kernels))\n    (@Holant.Complexity.InFP\n      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n        Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n      R Bool Γ Bool.fintype inst_1 (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity) answerEncoding\n      (@Counting.Reduction.FixedGadget.value s b arity R inst base kernels))"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.hard_base_of_extension","family":"gadget","import":"Counting.Reduction.FixedGadget.Machine","kind":"theorem","module":"Counting.Reduction.FixedGadget.Machine","name":"Counting.Reduction.FixedGadget.hard_base_of_extension","name_semantics":"actual named kernel declaration","readable_type":"∀ {sourceCount s b : Nat} {arity : Nat → Nat} (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      instLTNat.lt i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  {α Γ : Type} [inst : Fintype Γ] (inputEncoding : Computability.Encoding α Γ) (C : (α → Nat) → Prop)\n  (source :\n    (i : Fin sourceCount) →\n      Holant.Signature Nat (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates i.val))\n  (signatures : (i : Fin s) → Holant.Signature Nat (arity i.val)) (kernels : Fin b → Bool → Bool → Nat),\n  (∀ (i : Fin sourceCount),\n      Eq (Counting.Reduction.FixedGadget.macroSignatures templates hg signatures kernels i) (source i)) →\n    Counting.Complexity.HardFor inputEncoding\n        (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n        C (Counting.Reduction.FixedGadget.value source kernels) →\n      Counting.Complexity.HardFor inputEncoding (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity) C\n        (Counting.Reduction.FixedGadget.value signatures kernels)","role":"public","source_line":83,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Machine.lean","source_sha256":"9913d5cf4c04522ec626d045c3adbef6c7b3bacca7693caf52551404848279d3","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Machine.lean#L83","type":"∀ {sourceCount s b : Nat} {arity : Nat → Nat} (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      @LT.lt.{0} Nat instLTNat i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  {α Γ : Type} [inst : Fintype.{0} Γ] (inputEncoding : Computability.Encoding.{0, 0} α Γ) (C : (α → Nat) → Prop)\n  (source :\n    (i : Fin sourceCount) →\n      Holant.Signature.{0} Nat\n        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates (@Fin.val sourceCount i)))\n  (signatures : (i : Fin s) → Holant.Signature.{0} Nat (arity (@Fin.val s i))) (kernels : Fin b → Bool → Bool → Nat)\n  (hlocal :\n    ∀ (i : Fin sourceCount),\n      @Eq.{1}\n        (Holant.Signature.{0} Nat\n          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates (@Fin.val sourceCount i)))\n        (@Counting.Reduction.FixedGadget.macroSignatures sourceCount s b arity Nat Nat.instCommSemiring templates hg\n          signatures kernels i)\n        (source i))\n  (hard :\n    @Counting.Complexity.HardFor α\n      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n      Γ Bool inst Bool.fintype inputEncoding\n      (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n      C\n      (@Counting.Reduction.FixedGadget.value sourceCount b\n        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) Nat Nat.instCommSemiring source kernels)),\n  @Counting.Complexity.HardFor α\n    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n    Γ Bool inst Bool.fintype inputEncoding (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity) C\n    (@Counting.Reduction.FixedGadget.value s b arity Nat Nat.instCommSemiring signatures kernels)"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.inFP_of_base","family":"gadget","import":"Counting.Reduction.FixedGadget.Machine","kind":"theorem","module":"Counting.Reduction.FixedGadget.Machine","name":"Counting.Reduction.FixedGadget.inFP_of_base","name_semantics":"actual named kernel declaration","readable_type":"∀ {sourceCount s b : Nat} {arity : Nat → Nat} (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      instLTNat.lt i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  {R Γ : Type} [inst : CommSemiring R] [inst_1 : Fintype Γ] (answerEncoding : Computability.Encoding R Γ)\n  (source :\n    (i : Fin sourceCount) → Holant.Signature R (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates i.val))\n  (signatures : (i : Fin s) → Holant.Signature R (arity i.val)) (kernels : Fin b → Bool → Bool → R),\n  (∀ (i : Fin sourceCount),\n      Eq (Counting.Reduction.FixedGadget.macroSignatures templates hg signatures kernels i) (source i)) →\n    Holant.Complexity.InFP (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity) answerEncoding\n        (Counting.Reduction.FixedGadget.value signatures kernels) →\n      Holant.Complexity.InFP\n        (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n        answerEncoding (Counting.Reduction.FixedGadget.value source kernels)","role":"public","source_line":70,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Machine.lean","source_sha256":"9913d5cf4c04522ec626d045c3adbef6c7b3bacca7693caf52551404848279d3","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Machine.lean#L70","type":"∀ {sourceCount s b : Nat} {arity : Nat → Nat} (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      @LT.lt.{0} Nat instLTNat i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  {R Γ : Type} [inst : CommSemiring.{0} R] [inst_1 : Fintype.{0} Γ] (answerEncoding : Computability.Encoding.{0, 0} R Γ)\n  (source :\n    (i : Fin sourceCount) →\n      Holant.Signature.{0} R (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates (@Fin.val sourceCount i)))\n  (signatures : (i : Fin s) → Holant.Signature.{0} R (arity (@Fin.val s i))) (kernels : Fin b → Bool → Bool → R)\n  (hlocal :\n    ∀ (i : Fin sourceCount),\n      @Eq.{1}\n        (Holant.Signature.{0} R\n          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates (@Fin.val sourceCount i)))\n        (@Counting.Reduction.FixedGadget.macroSignatures sourceCount s b arity R inst templates hg signatures kernels i)\n        (source i))\n  (base :\n    @Holant.Complexity.InFP\n      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n        Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n      R Bool Γ Bool.fintype inst_1 (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity) answerEncoding\n      (@Counting.Reduction.FixedGadget.value s b arity R inst signatures kernels)),\n  @Holant.Complexity.InFP\n    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n    R Bool Γ Bool.fintype inst_1\n    (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n    answerEncoding\n    (@Counting.Reduction.FixedGadget.value sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) R inst source kernels)"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.includePrefixPolyTime","family":"gadget","import":"Counting.Reduction.FixedGadget.Extension","kind":"definition","module":"Counting.Reduction.FixedGadget.Extension","name":"Counting.Reduction.FixedGadget.includePrefixPolyTime","name_semantics":"actual named kernel declaration","readable_type":"{s t b : Nat} →\n  {arity : Nat → Nat} →\n    (hst : instLENat.le s t) →\n      Holant.Complexity.PolyTime (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n        (Holant.Complexity.RawClosedNetwork.validatedEncoding t b arity)\n        (Counting.Reduction.FixedGadget.includePrefix hst)","role":"public","source_line":23,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Extension.lean","source_sha256":"0be74984c611f6ab4515cc87aef0d76e813b3803dd7e46e8d045f227cacfb029","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Extension.lean#L23","type":"{s t b : Nat} →\n  {arity : Nat → Nat} →\n    (hst : @LE.le.{0} Nat instLENat s t) →\n      @Holant.Complexity.PolyTime\n        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n          Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n          Holant.Complexity.RawClosedNetwork.WellFormed t b arity r)\n        Bool Bool Bool.fintype Bool.fintype (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n        (Holant.Complexity.RawClosedNetwork.validatedEncoding t b arity)\n        (@Counting.Reduction.FixedGadget.includePrefix s t b arity hst)"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.includePrefix_bits","family":"gadget","import":"Counting.Reduction.FixedGadget.Extension","kind":"theorem","module":"Counting.Reduction.FixedGadget.Extension","name":"Counting.Reduction.FixedGadget.includePrefix_bits","name_semantics":"actual named kernel declaration","readable_type":"∀ {s t b : Nat} {arity : Nat → Nat} (hst : instLENat.le s t) (r : Counting.Reduction.FixedGadget.Input s b arity),\n  Eq\n    ((Holant.Complexity.RawClosedNetwork.validatedEncoding t b arity).encode\n      (Counting.Reduction.FixedGadget.includePrefix hst r))\n    ((Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity).encode r)","role":"public","source_line":18,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Extension.lean","source_sha256":"0be74984c611f6ab4515cc87aef0d76e813b3803dd7e46e8d045f227cacfb029","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Extension.lean#L18","type":"∀ {s t b : Nat} {arity : Nat → Nat} (hst : @LE.le.{0} Nat instLENat s t)\n  (r : Counting.Reduction.FixedGadget.Input s b arity),\n  @Eq.{1} (List.{0} Bool)\n    (@Computability.Encoding.encode.{0, 0}\n      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n        Holant.Complexity.RawClosedNetwork.WellFormed t b arity r)\n      Bool (Holant.Complexity.RawClosedNetwork.validatedEncoding t b arity)\n      (@Counting.Reduction.FixedGadget.includePrefix s t b arity hst r))\n    (@Computability.Encoding.encode.{0, 0}\n      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n        Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n      Bool (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity) r)"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.macroSignatures","family":"gadget","import":"Counting.Reduction.FixedGadget.Basic","kind":"definition","module":"Counting.Reduction.FixedGadget.Basic","name":"Counting.Reduction.FixedGadget.macroSignatures","name_semantics":"actual named kernel declaration","readable_type":"{sourceCount s b : Nat} →\n  {arity : Nat → Nat} →\n    {R : Type} →\n      [CommSemiring R] →\n        (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) →\n          (∀ (i : Nat),\n              instLTNat.lt i sourceCount →\n                Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i)) →\n            ((i : Fin s) → Holant.Signature R (arity i.val)) →\n              (Fin b → Bool → Bool → R) →\n                (i : Fin sourceCount) →\n                  Holant.Signature R (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates i.val)","role":"public","source_line":34,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Basic.lean","source_sha256":"bee9417d78281689259a9ec12d71c39001f1c807de49eca34e14d00f4abd785f","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Basic.lean#L34","type":"{sourceCount s b : Nat} →\n  {arity : Nat → Nat} →\n    {R : Type} →\n      [CommSemiring.{0} R] →\n        (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) →\n          (hg :\n              ∀ (i : Nat),\n                @LT.lt.{0} Nat instLTNat i sourceCount →\n                  Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i)) →\n            (signatures : (i : Fin s) → Holant.Signature.{0} R (arity (@Fin.val s i))) →\n              (kernels : Fin b → Bool → Bool → R) →\n                (i : Fin sourceCount) →\n                  Holant.Signature.{0} R\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates (@Fin.val sourceCount i))"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.output_length_static","family":"gadget","import":"Counting.Reduction.FixedGadget.Machine","kind":"theorem","module":"Counting.Reduction.FixedGadget.Machine","name":"Counting.Reduction.FixedGadget.output_length_static","name_semantics":"actual named kernel declaration","readable_type":"∀ {sourceCount s b : Nat} {arity : Nat → Nat} (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      instLTNat.lt i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  (A V E : Nat),\n  (∀ (i : Nat), instLTNat.lt i s → instLENat.le (arity i) A) →\n    (∀ (i : Nat),\n        instLTNat.lt i sourceCount →\n          And (instLENat.le (templates i).vertices.length V) (instLENat.le (templates i).edges.length E)) →\n      ∀\n        (r :\n          Counting.Reduction.FixedGadget.Input sourceCount b\n            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)),\n        instLENat.le\n          ((Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity).encode\n              (Counting.Reduction.FixedGadget.compile templates hg r)).length\n          (Polynomial.eval\n            ((Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)).encode\n                r).length\n            (Holant.Complexity.FixedGadgetSubstitution.querySizePolynomial s b A V E))","role":"public","source_line":36,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Machine.lean","source_sha256":"9913d5cf4c04522ec626d045c3adbef6c7b3bacca7693caf52551404848279d3","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Machine.lean#L36","type":"∀ {sourceCount s b : Nat} {arity : Nat → Nat} (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      @LT.lt.{0} Nat instLTNat i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  (A V E : Nat) (ha : ∀ (i : Nat), @LT.lt.{0} Nat instLTNat i s → @LE.le.{0} Nat instLENat (arity i) A)\n  (hb :\n    ∀ (i : Nat),\n      @LT.lt.{0} Nat instLTNat i sourceCount →\n        And\n          (@LE.le.{0} Nat instLENat\n            (@List.length.{0} Holant.Complexity.FixedGadgetSubstitution.LocalVertex\n              (Holant.Complexity.FixedGadgetSubstitution.Template.vertices (templates i)))\n            V)\n          (@LE.le.{0} Nat instLENat\n            (@List.length.{0} Nat (Holant.Complexity.FixedGadgetSubstitution.Template.edges (templates i))) E))\n  (r :\n    Counting.Reduction.FixedGadget.Input sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)),\n  @LE.le.{0} Nat instLENat\n    (@List.length.{0} Bool\n      (@Computability.Encoding.encode.{0, 0}\n        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n          Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n        Bool (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n        (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r)))\n    (@Polynomial.eval.{0} Nat Nat.instSemiring\n      (@List.length.{0} Bool\n        (@Computability.Encoding.encode.{0, 0}\n          (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n            Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n          Bool\n          (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n          r))\n      (Holant.Complexity.FixedGadgetSubstitution.querySizePolynomial s b A V E))"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.parsimonious","family":"gadget","import":"Counting.Reduction.FixedGadget.Machine","kind":"definition","module":"Counting.Reduction.FixedGadget.Machine","name":"Counting.Reduction.FixedGadget.parsimonious","name_semantics":"actual named kernel declaration","readable_type":"{sourceCount s b : Nat} →\n  {arity : Nat → Nat} →\n    (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) →\n      (hg :\n          ∀ (i : Nat),\n            instLTNat.lt i sourceCount →\n              Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i)) →\n        (source :\n            (i : Fin sourceCount) →\n              Holant.Signature Nat (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates i.val)) →\n          (signatures : (i : Fin s) → Holant.Signature Nat (arity i.val)) →\n            (kernels : Fin b → Bool → Bool → Nat) →\n              (∀ (i : Fin sourceCount),\n                  Eq (Counting.Reduction.FixedGadget.macroSignatures templates hg signatures kernels i) (source i)) →\n                Counting.Complexity.ParsimoniousReduction\n                  (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                  (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                  (Counting.Reduction.FixedGadget.value source kernels)\n                  (Counting.Reduction.FixedGadget.value signatures kernels)","role":"public","source_line":57,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Machine.lean","source_sha256":"9913d5cf4c04522ec626d045c3adbef6c7b3bacca7693caf52551404848279d3","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Machine.lean#L57","type":"{sourceCount s b : Nat} →\n  {arity : Nat → Nat} →\n    (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) →\n      (hg :\n          ∀ (i : Nat),\n            @LT.lt.{0} Nat instLTNat i sourceCount →\n              Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i)) →\n        (source :\n            (i : Fin sourceCount) →\n              Holant.Signature.{0} Nat\n                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates (@Fin.val sourceCount i))) →\n          (signatures : (i : Fin s) → Holant.Signature.{0} Nat (arity (@Fin.val s i))) →\n            (kernels : Fin b → Bool → Bool → Nat) →\n              (hlocal :\n                  ∀ (i : Fin sourceCount),\n                    @Eq.{1}\n                      (Holant.Signature.{0} Nat\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates (@Fin.val sourceCount i)))\n                      (@Counting.Reduction.FixedGadget.macroSignatures sourceCount s b arity Nat Nat.instCommSemiring\n                        templates hg signatures kernels i)\n                      (source i)) →\n                @Counting.Complexity.ParsimoniousReduction\n                  (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                  (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                  Bool Bool Bool.fintype Bool.fintype\n                  (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                  (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                  (@Counting.Reduction.FixedGadget.value sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) Nat Nat.instCommSemiring source\n                    kernels)\n                  (@Counting.Reduction.FixedGadget.value s b arity Nat Nat.instCommSemiring signatures kernels)"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.partition_compile_network","family":"gadget","import":"Counting.Reduction.FixedGadget.S1","kind":"theorem","module":"Counting.Reduction.FixedGadget.S1","name":"Counting.Reduction.FixedGadget.partition_compile_network","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : Type} [inst : CommSemiring R] {sourceCount s b : Nat} {arity : Nat → Nat}\n  (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      instLTNat.lt i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  (source :\n    (i : Fin sourceCount) → Holant.Signature R (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates i.val))\n  (signatures : (i : Fin s) → Holant.Signature R (arity i.val)) (kernels : Fin b → Bool → Bool → R),\n  (∀ (i : Fin sourceCount),\n      Eq (Counting.Reduction.FixedGadget.macroSignatures templates hg signatures kernels i) (source i)) →\n    ∀\n      (r :\n        Counting.Reduction.FixedGadget.Input sourceCount b\n          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)),\n      Eq\n        ((Counting.Bridge.Holant.toOpenInstance\n              (Holant.Complexity.RawClosedNetwork.realize ⋯ signatures kernels)).partition\n          Fin.elim0)\n        ((Counting.Bridge.Holant.toOpenInstance (Holant.Complexity.RawClosedNetwork.realize ⋯ source kernels)).partition\n          Fin.elim0)","role":"public","source_line":36,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/S1.lean","source_sha256":"0c5de099d602cc2ad73e9a8942aca553e92c8d9f1fa70b1f15f66247ceab0abf","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/S1.lean#L36","type":"∀ {R : Type} [inst : CommSemiring.{0} R] {sourceCount s b : Nat} {arity : Nat → Nat}\n  (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      @LT.lt.{0} Nat instLTNat i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  (source :\n    (i : Fin sourceCount) →\n      Holant.Signature.{0} R (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates (@Fin.val sourceCount i)))\n  (signatures : (i : Fin s) → Holant.Signature.{0} R (arity (@Fin.val s i))) (kernels : Fin b → Bool → Bool → R)\n  (hlocal :\n    ∀ (i : Fin sourceCount),\n      @Eq.{1}\n        (Holant.Signature.{0} R\n          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates (@Fin.val sourceCount i)))\n        (@Counting.Reduction.FixedGadget.macroSignatures sourceCount s b arity R inst templates hg signatures kernels i)\n        (source i))\n  (r :\n    Counting.Reduction.FixedGadget.Input sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)),\n  @Eq.{1} R\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.vertices\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape Bool R\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                  signatures kernels)))))\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape Bool R\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                  signatures kernels))))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n      (Prod.{0, 0}\n        (Fin\n          (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n                (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                  (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                R\n                (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                  (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                signatures kernels))))\n        Bool)\n      (@Counting.Model.KernelNetwork.language Bool R (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n        (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n          (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n            (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n              (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n              (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n            R\n            (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n              (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n              (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n            signatures kernels)))\n      inst Bool.fintype\n      (@instFintypeProd.{0, 0}\n        (Fin\n          (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n                (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                  (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                R\n                (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                  (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                signatures kernels))))\n        Bool\n        (Fin.fintype\n          (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n                (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                  (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                R\n                (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                  (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                signatures kernels))))\n        Bool.fintype)\n      (fun\n          (a b_1 :\n            Prod.{0, 0}\n              (Fin\n                (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n                      (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                        (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                          Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                        (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                      R\n                      (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                        (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                          Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                        (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                      signatures kernels))))\n              Bool) =>\n        @instDecidableEqProd.{0, 0}\n          (Fin\n            (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                  signatures kernels))))\n          Bool\n          (instDecidableEqFin\n            (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                  signatures kernels))))\n          instDecidableEqBool a b_1)\n      (@Counting.Bridge.Holant.toOpenInstance R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n        (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n          (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n            (fun (r : Holant.Complexity.RawClosedNetwork) => Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n            (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n          R\n          (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n            (fun (r : Holant.Complexity.RawClosedNetwork) => Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n            (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n          signatures kernels))\n      (@Fin.elim0.{1} Bool))\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.vertices\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape Bool R\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  source kernels)))))\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape Bool R\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  source kernels))))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n      (Prod.{0, 0}\n        (Fin\n          (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                  r)\n                R\n                (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                  r)\n                source kernels))))\n        Bool)\n      (@Counting.Model.KernelNetwork.language Bool R (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n        (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n          (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n            (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n              (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n              r)\n            R\n            (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n              (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n              r)\n            source kernels)))\n      inst Bool.fintype\n      (@instFintypeProd.{0, 0}\n        (Fin\n          (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                  r)\n                R\n                (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                  r)\n                source kernels))))\n        Bool\n        (Fin.fintype\n          (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                  r)\n                R\n                (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                  r)\n                source kernels))))\n        Bool.fintype)\n      (fun\n          (a b_1 :\n            Prod.{0, 0}\n              (Fin\n                (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                      (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                        (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                          Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                        r)\n                      R\n                      (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                        (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                          Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                        r)\n                      source kernels))))\n              Bool) =>\n        @instDecidableEqProd.{0, 0}\n          (Fin\n            (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  source kernels))))\n          Bool\n          (instDecidableEqFin\n            (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  source kernels))))\n          instDecidableEqBool a b_1)\n      (@Counting.Bridge.Holant.toOpenInstance R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n        (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n          (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n            r)\n          R\n          (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n            r)\n          source kernels))\n      (@Fin.elim0.{1} Bool))"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.primitive_bound","family":"gadget","import":"Counting.Reduction.FixedGadget.Machine","kind":"theorem","module":"Counting.Reduction.FixedGadget.Machine","name":"Counting.Reduction.FixedGadget.primitive_bound","name_semantics":"actual named kernel declaration","readable_type":"∀ {sourceCount s b : Nat} {arity : Nat → Nat} (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      instLTNat.lt i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  (r :\n    Counting.Reduction.FixedGadget.Input sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)),\n  instLENat.le\n    (Holant.Complexity.FixedFieldMachines.primitiveCost (Counting.Reduction.FixedGadget.computes templates hg).machine\n      ((Counting.Reduction.FixedGadget.computes templates hg).outputs r).steps\n      (Option.some\n        (Turing.initList (Counting.Reduction.FixedGadget.computes templates hg).machine.computer\n          ((Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)).encode\n            r))))\n    (Polynomial.eval\n      ((Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)).encode\n          r).length\n      (Holant.Complexity.FixedFieldMachines.primitivePolynomial (Counting.Reduction.FixedGadget.computes templates hg)))","role":"public","source_line":46,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Machine.lean","source_sha256":"9913d5cf4c04522ec626d045c3adbef6c7b3bacca7693caf52551404848279d3","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Machine.lean#L46","type":"∀ {sourceCount s b : Nat} {arity : Nat → Nat} (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      @LT.lt.{0} Nat instLTNat i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  (r :\n    Counting.Reduction.FixedGadget.Input sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)),\n  @LE.le.{0} Nat instLENat\n    (Holant.Complexity.FixedFieldMachines.primitiveCost\n      (@Holant.Complexity.BinaryCompose.Computes.machine\n        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n          Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n          Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n        (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n        (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n        (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n        (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg))\n      (@StateTransition.EvalsTo.steps.{0}\n        (Turing.FinTM2.Cfg\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n              (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n              (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg))))\n        (Turing.FinTM2.step\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n              (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n              (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg))))\n        (Turing.initList\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n              (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n              (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg)))\n          (@Computability.Encoding.encode.{0, 0}\n            (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n            Bool\n            (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n            r))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (Holant.Complexity.BinaryCompose.Machine.computer\n                (@Holant.Complexity.BinaryCompose.Computes.machine\n                  (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                  (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                  (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                  (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                  (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n                  (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg)))\n              (Turing.FinTM2.k₁\n                (Holant.Complexity.BinaryCompose.Machine.computer\n                  (@Holant.Complexity.BinaryCompose.Computes.machine\n                    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                    (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                    (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n                    (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg))))))\n          (Turing.FinTM2.Cfg\n            (Holant.Complexity.BinaryCompose.Machine.computer\n              (@Holant.Complexity.BinaryCompose.Computes.machine\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n                (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg))))\n          (Turing.haltList\n            (Holant.Complexity.BinaryCompose.Machine.computer\n              (@Holant.Complexity.BinaryCompose.Computes.machine\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n                (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (Holant.Complexity.BinaryCompose.Machine.computer\n                  (@Holant.Complexity.BinaryCompose.Computes.machine\n                    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                    (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                    (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n                    (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg)))\n                (Turing.FinTM2.k₁\n                  (Holant.Complexity.BinaryCompose.Machine.computer\n                    (@Holant.Complexity.BinaryCompose.Computes.machine\n                      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                      (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                      (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                      (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n                      (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg))))))\n            (@Computability.Encoding.encode.{0, 0}\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n              Bool (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n              (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))))\n        (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n          (Turing.FinTM2.Cfg\n            (Holant.Complexity.BinaryCompose.Machine.computer\n              (@Holant.Complexity.BinaryCompose.Computes.machine\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n                (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg))))\n          (Turing.FinTM2.step\n            (Holant.Complexity.BinaryCompose.Machine.computer\n              (@Holant.Complexity.BinaryCompose.Computes.machine\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n                (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg))))\n          (Turing.initList\n            (Holant.Complexity.BinaryCompose.Machine.computer\n              (@Holant.Complexity.BinaryCompose.Computes.machine\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n                (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg)))\n            (@Computability.Encoding.encode.{0, 0}\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n              Bool\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n              r))\n          (@Option.map.{0, 0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (Holant.Complexity.BinaryCompose.Machine.computer\n                  (@Holant.Complexity.BinaryCompose.Computes.machine\n                    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                    (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                    (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n                    (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg)))\n                (Turing.FinTM2.k₁\n                  (Holant.Complexity.BinaryCompose.Machine.computer\n                    (@Holant.Complexity.BinaryCompose.Computes.machine\n                      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                      (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                      (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                      (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n                      (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg))))))\n            (Turing.FinTM2.Cfg\n              (Holant.Complexity.BinaryCompose.Machine.computer\n                (@Holant.Complexity.BinaryCompose.Computes.machine\n                  (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                  (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                  (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                  (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                  (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n                  (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg))))\n            (Turing.haltList\n              (Holant.Complexity.BinaryCompose.Machine.computer\n                (@Holant.Complexity.BinaryCompose.Computes.machine\n                  (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                  (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                  (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                  (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                  (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n                  (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg))))\n            (@Option.some.{0}\n              (List.{0}\n                (Turing.FinTM2.Γ\n                  (Holant.Complexity.BinaryCompose.Machine.computer\n                    (@Holant.Complexity.BinaryCompose.Computes.machine\n                      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                      (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                      (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                      (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n                      (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg)))\n                  (Turing.FinTM2.k₁\n                    (Holant.Complexity.BinaryCompose.Machine.computer\n                      (@Holant.Complexity.BinaryCompose.Computes.machine\n                        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                          Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                          Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                        (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                        (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                        (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n                        (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg))))))\n              (@Computability.Encoding.encode.{0, 0}\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                Bool (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))))\n          (@Polynomial.eval.{0} Nat Nat.instSemiring\n            (@List.length.{0} Bool\n              (@Computability.Encoding.encode.{0, 0}\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                Bool\n                (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n                r))\n            (@Holant.Complexity.BinaryCompose.Computes.time\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n              (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n              (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg)))\n          (@Holant.Complexity.BinaryCompose.Computes.outputs\n            (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n            (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n              Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n            (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n            (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n            (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n            (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg) r)))\n      (@Option.some.{0}\n        (Holant.Complexity.BinaryCompose.Machine.Config\n          (@Holant.Complexity.BinaryCompose.Computes.machine\n            (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n            (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n              Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n            (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n            (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n            (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n            (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg)))\n        (Turing.initList\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n              (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n              (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg)))\n          (@Computability.Encoding.encode.{0, 0}\n            (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n            Bool\n            (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n            r))))\n    (@Polynomial.eval.{0} Nat Nat.instSemiring\n      (@List.length.{0} Bool\n        (@Computability.Encoding.encode.{0, 0}\n          (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n            Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n          Bool\n          (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n          r))\n      (@Holant.Complexity.FixedFieldMachines.primitivePolynomial\n        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n          Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n          Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n        (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b\n          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n        (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n        (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg)\n        (@Counting.Reduction.FixedGadget.computes sourceCount s b arity templates hg)))"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.substitution_alignment","family":"gadget","import":"Counting.Reduction.FixedGadget.S1","kind":"theorem","module":"Counting.Reduction.FixedGadget.S1","name":"Counting.Reduction.FixedGadget.substitution_alignment","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : Type} [inst : CommSemiring R] {sourceCount s b : Nat} {arity : Nat → Nat}\n  (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      instLTNat.lt i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  (source :\n    (i : Fin sourceCount) → Holant.Signature R (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates i.val))\n  (signatures : (i : Fin s) → Holant.Signature R (arity i.val)) (kernels : Fin b → Bool → Bool → R),\n  (∀ (i : Fin sourceCount),\n      Eq (Counting.Reduction.FixedGadget.macroSignatures templates hg signatures kernels i) (source i)) →\n    ∀\n      (r :\n        Counting.Reduction.FixedGadget.Input sourceCount b\n          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n      {ι : Type} {L : Counting.Model.Language Bool R ι}\n      (P :\n        Counting.Gadget.Substitution.Gadgets L\n          (Counting.Bridge.Holant.adapt (Holant.Complexity.RawClosedNetwork.realize ⋯ source kernels)).language),\n      Counting.Gadget.Substitution.Realizes P →\n        Eq\n          ((Counting.Gadget.Substitution.compile P\n                (Counting.Bridge.Holant.toOpenInstance\n                  (Holant.Complexity.RawClosedNetwork.realize ⋯ source kernels))).partition\n            Fin.elim0)\n          ((Counting.Bridge.Holant.toOpenInstance\n                (Holant.Complexity.RawClosedNetwork.realize ⋯ signatures kernels)).partition\n            Fin.elim0)","role":"public","source_line":54,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/S1.lean","source_sha256":"0c5de099d602cc2ad73e9a8942aca553e92c8d9f1fa70b1f15f66247ceab0abf","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/S1.lean#L54","type":"∀ {R : Type} [inst : CommSemiring.{0} R] {sourceCount s b : Nat} {arity : Nat → Nat}\n  (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      @LT.lt.{0} Nat instLTNat i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  (source :\n    (i : Fin sourceCount) →\n      Holant.Signature.{0} R (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates (@Fin.val sourceCount i)))\n  (signatures : (i : Fin s) → Holant.Signature.{0} R (arity (@Fin.val s i))) (kernels : Fin b → Bool → Bool → R)\n  (hlocal :\n    ∀ (i : Fin sourceCount),\n      @Eq.{1}\n        (Holant.Signature.{0} R\n          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates (@Fin.val sourceCount i)))\n        (@Counting.Reduction.FixedGadget.macroSignatures sourceCount s b arity R inst templates hg signatures kernels i)\n        (source i))\n  (r :\n    Counting.Reduction.FixedGadget.Input sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates))\n  {ι : Type} {L : Counting.Model.Language Bool R ι}\n  (P :\n    @Counting.Gadget.Substitution.Gadgets Bool R ι\n      (Sum.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.vertices\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape Bool R\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  source kernels)))))\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape Bool R\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  source kernels))))))\n      L\n      (@Counting.Model.KernelNetwork.language Bool R (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n        (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n          (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n            (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n              (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n              r)\n            R\n            (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n              (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n              r)\n            source kernels))))\n  (hP :\n    @Counting.Gadget.Substitution.Realizes Bool R ι L\n      (Sum.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.vertices\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape Bool R\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  source kernels)))))\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape Bool R\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  source kernels))))))\n      (@Counting.Model.KernelNetwork.language Bool R (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n        (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n          (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n            (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n              (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n              r)\n            R\n            (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n              (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n              r)\n            source kernels)))\n      inst Bool.fintype P),\n  @Eq.{1} R\n    (@Counting.Model.OpenInstance.partition Bool R ι (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n      (Sum.{0, 0}\n        (Prod.{0, 0}\n          (Fin\n            (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  source kernels))))\n          Bool)\n        (Fin\n          (@Counting.Gadget.Presentation.hidden Bool R ι L\n            (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (Prod.{0, 0}\n                (Fin\n                  (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                        (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                          (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                            Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                          r)\n                        R\n                        (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                          (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                            Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                          r)\n                        source kernels))))\n                Bool))\n            (@Counting.Gadget.Substitution.expand Bool R ι\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (Prod.{0, 0}\n                (Fin\n                  (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                        (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                          (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                            Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                          r)\n                        R\n                        (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                          (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                            Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                          r)\n                        source kernels))))\n                Bool)\n              L\n              (Sum.{0, 0}\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.vertices\n                    (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                    (@Counting.Model.KernelNetwork.shape Bool R\n                      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                      (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                          (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          R\n                          (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          source kernels)))))\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.edges\n                    (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                    (@Counting.Model.KernelNetwork.shape Bool R\n                      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                      (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                          (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          R\n                          (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          source kernels))))))\n              (@Counting.Model.KernelNetwork.language Bool R\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                    (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                      (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                      r)\n                    R\n                    (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                      (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                      r)\n                    source kernels)))\n              P\n              (@Counting.Bridge.Holant.toOpenInstance R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  source kernels))))))\n      L inst Bool.fintype\n      (@instFintypeSum.{0, 0}\n        (Prod.{0, 0}\n          (Fin\n            (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  source kernels))))\n          Bool)\n        (Fin\n          (@Counting.Gadget.Presentation.hidden Bool R ι L\n            (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (Prod.{0, 0}\n                (Fin\n                  (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                        (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                          (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                            Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                          r)\n                        R\n                        (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                          (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                            Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                          r)\n                        source kernels))))\n                Bool))\n            (@Counting.Gadget.Substitution.expand Bool R ι\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (Prod.{0, 0}\n                (Fin\n                  (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                        (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                          (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                            Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                          r)\n                        R\n                        (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                          (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                            Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                          r)\n                        source kernels))))\n                Bool)\n              L\n              (Sum.{0, 0}\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.vertices\n                    (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                    (@Counting.Model.KernelNetwork.shape Bool R\n                      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                      (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                          (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          R\n                          (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          source kernels)))))\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.edges\n                    (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                    (@Counting.Model.KernelNetwork.shape Bool R\n                      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                      (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                          (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          R\n                          (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          source kernels))))))\n              (@Counting.Model.KernelNetwork.language Bool R\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                    (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                      (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                      r)\n                    R\n                    (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                      (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                      r)\n                    source kernels)))\n              P\n              (@Counting.Bridge.Holant.toOpenInstance R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  source kernels)))))\n        (@instFintypeProd.{0, 0}\n          (Fin\n            (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  source kernels))))\n          Bool\n          (Fin.fintype\n            (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  source kernels))))\n          Bool.fintype)\n        (Fin.fintype\n          (@Counting.Gadget.Presentation.hidden Bool R ι L\n            (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (Prod.{0, 0}\n                (Fin\n                  (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                        (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                          (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                            Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                          r)\n                        R\n                        (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                          (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                            Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                          r)\n                        source kernels))))\n                Bool))\n            (@Counting.Gadget.Substitution.expand Bool R ι\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (Prod.{0, 0}\n                (Fin\n                  (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                        (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                          (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                            Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                          r)\n                        R\n                        (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                          (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                            Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                          r)\n                        source kernels))))\n                Bool)\n              L\n              (Sum.{0, 0}\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.vertices\n                    (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                    (@Counting.Model.KernelNetwork.shape Bool R\n                      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                      (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                          (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          R\n                          (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          source kernels)))))\n                (Fin\n                  (@Counting.Model.KernelNetworkShape.edges\n                    (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                    (@Counting.Model.KernelNetwork.shape Bool R\n                      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                      (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                          (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          R\n                          (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          source kernels))))))\n              (@Counting.Model.KernelNetwork.language Bool R\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                    (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                      (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                      r)\n                    R\n                    (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                      (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                      r)\n                    source kernels)))\n              P\n              (@Counting.Bridge.Holant.toOpenInstance R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  source kernels))))))\n      (fun\n          (a b_1 :\n            Sum.{0, 0}\n              (Prod.{0, 0}\n                (Fin\n                  (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                        (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                          (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                            Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                          r)\n                        R\n                        (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                          (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                            Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                          r)\n                        source kernels))))\n                Bool)\n              (Fin\n                (@Counting.Gadget.Presentation.hidden Bool R ι L\n                  (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                    (Prod.{0, 0}\n                      (Fin\n                        (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                              (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                                (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                                  Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                                r)\n                              R\n                              (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                                (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                                  Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                                r)\n                              source kernels))))\n                      Bool))\n                  (@Counting.Gadget.Substitution.expand Bool R ι\n                    (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                    (Prod.{0, 0}\n                      (Fin\n                        (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                            (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                              (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                                (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                                  Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                                r)\n                              R\n                              (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                                (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                                  Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                                r)\n                              source kernels))))\n                      Bool)\n                    L\n                    (Sum.{0, 0}\n                      (Fin\n                        (@Counting.Model.KernelNetworkShape.vertices\n                          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                          (@Counting.Model.KernelNetwork.shape Bool R\n                            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                            (@Counting.Bridge.Holant.adapt R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                                (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                                    Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                                  r)\n                                R\n                                (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                                    Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                                  r)\n                                source kernels)))))\n                      (Fin\n                        (@Counting.Model.KernelNetworkShape.edges\n                          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                          (@Counting.Model.KernelNetwork.shape Bool R\n                            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                            (@Counting.Bridge.Holant.adapt R\n                              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                              (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                                (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                                    Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                                  r)\n                                R\n                                (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                                    Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                                  r)\n                                source kernels))))))\n                    (@Counting.Model.KernelNetwork.language Bool R\n                      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                      (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                          (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          R\n                          (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          source kernels)))\n                    P\n                    (@Counting.Bridge.Holant.toOpenInstance R\n                      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                        (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                          (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                            Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                          r)\n                        R\n                        (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                          (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                            Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                          r)\n                        source kernels)))))) =>\n        @instDecidableEqSum.{0, 0}\n          (Prod.{0, 0}\n            (Fin\n              (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                    (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                      (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                      r)\n                    R\n                    (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                      (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                      r)\n                    source kernels))))\n            Bool)\n          (Fin\n            (@Counting.Gadget.Presentation.hidden Bool R ι L\n              (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                (Prod.{0, 0}\n                  (Fin\n                    (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                          (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          R\n                          (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          source kernels))))\n                  Bool))\n              (@Counting.Gadget.Substitution.expand Bool R ι\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                (Prod.{0, 0}\n                  (Fin\n                    (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                          (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          R\n                          (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          source kernels))))\n                  Bool)\n                L\n                (Sum.{0, 0}\n                  (Fin\n                    (@Counting.Model.KernelNetworkShape.vertices\n                      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                      (@Counting.Model.KernelNetwork.shape Bool R\n                        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                        (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                            (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                              (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                              r)\n                            R\n                            (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                              (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                              r)\n                            source kernels)))))\n                  (Fin\n                    (@Counting.Model.KernelNetworkShape.edges\n                      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                      (@Counting.Model.KernelNetwork.shape Bool R\n                        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                        (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                            (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                              (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                              r)\n                            R\n                            (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                              (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                              r)\n                            source kernels))))))\n                (@Counting.Model.KernelNetwork.language Bool R\n                  (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                  (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                      (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                        (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                          Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                        r)\n                      R\n                      (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                        (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                          Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                        r)\n                      source kernels)))\n                P\n                (@Counting.Bridge.Holant.toOpenInstance R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                    (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                      (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                      r)\n                    R\n                    (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                      (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                      r)\n                    source kernels)))))\n          (fun\n              (a b_2 :\n                Prod.{0, 0}\n                  (Fin\n                    (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                          (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          R\n                          (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          source kernels))))\n                  Bool) =>\n            @instDecidableEqProd.{0, 0}\n              (Fin\n                (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                      (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                        (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                          Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                        r)\n                      R\n                      (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                        (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                          Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                        r)\n                      source kernels))))\n              Bool\n              (instDecidableEqFin\n                (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                      (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                        (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                          Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                        r)\n                      R\n                      (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                        (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                          Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                        r)\n                      source kernels))))\n              instDecidableEqBool a b_2)\n          (instDecidableEqFin\n            (@Counting.Gadget.Presentation.hidden Bool R ι L\n              (Sum.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                (Prod.{0, 0}\n                  (Fin\n                    (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                          (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          R\n                          (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          source kernels))))\n                  Bool))\n              (@Counting.Gadget.Substitution.expand Bool R ι\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                (Prod.{0, 0}\n                  (Fin\n                    (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                      (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                        (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                          (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          R\n                          (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                            (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                            r)\n                          source kernels))))\n                  Bool)\n                L\n                (Sum.{0, 0}\n                  (Fin\n                    (@Counting.Model.KernelNetworkShape.vertices\n                      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                      (@Counting.Model.KernelNetwork.shape Bool R\n                        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                        (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                            (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                              (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                              r)\n                            R\n                            (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                              (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                              r)\n                            source kernels)))))\n                  (Fin\n                    (@Counting.Model.KernelNetworkShape.edges\n                      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                      (@Counting.Model.KernelNetwork.shape Bool R\n                        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                        (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                          (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                            (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                              (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                              r)\n                            R\n                            (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                              (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                              r)\n                            source kernels))))))\n                (@Counting.Model.KernelNetwork.language Bool R\n                  (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                  (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                      (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                        (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                          Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                        r)\n                      R\n                      (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                        (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                          Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                        r)\n                      source kernels)))\n                P\n                (@Counting.Bridge.Holant.toOpenInstance R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                    (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                      (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                      r)\n                    R\n                    (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                      (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                      r)\n                    source kernels)))))\n          a b_1)\n      (@Counting.Gadget.Substitution.compile Bool R ι\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n        (Prod.{0, 0}\n          (Fin\n            (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                        (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                    r)\n                  source kernels))))\n          Bool)\n        L\n        (Sum.{0, 0}\n          (Fin\n            (@Counting.Model.KernelNetworkShape.vertices\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Model.KernelNetwork.shape Bool R\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                    (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                      (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                      r)\n                    R\n                    (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                      (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                      r)\n                    source kernels)))))\n          (Fin\n            (@Counting.Model.KernelNetworkShape.edges\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Model.KernelNetwork.shape Bool R\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n                (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n                    (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                      (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                      r)\n                    R\n                    (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                      (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                      r)\n                    source kernels))))))\n        (@Counting.Model.KernelNetwork.language Bool R\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n          (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n              (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                r)\n              R\n              (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                    (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n                r)\n              source kernels)))\n        P\n        (@Counting.Bridge.Holant.toOpenInstance R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n          (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)\n            (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n              (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n              r)\n            R\n            (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n              (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n                  (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n              r)\n            source kernels)))\n      (@Fin.elim0.{1} Bool))\n    (@Counting.Model.OpenInstance.partition Bool R\n      (Sum.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.vertices\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape Bool R\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                  signatures kernels)))))\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n            (@Counting.Model.KernelNetwork.shape Bool R\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n              (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                  signatures kernels))))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n      (Prod.{0, 0}\n        (Fin\n          (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n                (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                  (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                R\n                (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                  (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                signatures kernels))))\n        Bool)\n      (@Counting.Model.KernelNetwork.language Bool R (Fin (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n        (@Counting.Bridge.Holant.adapt R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n          (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n            (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n              (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n              (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n            R\n            (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n              (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n              (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n            signatures kernels)))\n      inst Bool.fintype\n      (@instFintypeProd.{0, 0}\n        (Fin\n          (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n                (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                  (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                R\n                (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                  (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                signatures kernels))))\n        Bool\n        (Fin.fintype\n          (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n            (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n                (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                  (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                R\n                (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                  (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                  (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                signatures kernels))))\n        Bool.fintype)\n      (fun\n          (a b_1 :\n            Prod.{0, 0}\n              (Fin\n                (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                  (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                    (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n                      (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                        (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                          Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                        (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                      R\n                      (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                        (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                          Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                        (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                      signatures kernels))))\n              Bool) =>\n        @instDecidableEqProd.{0, 0}\n          (Fin\n            (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                  signatures kernels))))\n          Bool\n          (instDecidableEqFin\n            (@Holant.NetworkShape.edges (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n              (@Holant.Network.shape.{0} R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n                (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n                  (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                  R\n                  (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n                    (fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n                  signatures kernels))))\n          instDecidableEqBool a b_1)\n      (@Counting.Bridge.Holant.toOpenInstance R (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n        (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n          (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n            (fun (r : Holant.Complexity.RawClosedNetwork) => Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n            (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n          R\n          (@Subtype.property.{1} Holant.Complexity.RawClosedNetwork\n            (fun (r : Holant.Complexity.RawClosedNetwork) => Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n            (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n          signatures kernels))\n      (@Fin.elim0.{1} Bool))"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.templatePresentation","family":"gadget","import":"Counting.Reduction.FixedGadget.S1","kind":"definition","module":"Counting.Reduction.FixedGadget.S1","name":"Counting.Reduction.FixedGadget.templatePresentation","name_semantics":"actual named kernel declaration","readable_type":"{R : Type} →\n  {s b : Nat} →\n    {arity : Nat → Nat} →\n      (g : Holant.Complexity.FixedGadgetSubstitution.Template) →\n        (hg : Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity g) →\n          (signatures : (i : Fin s) → Holant.Signature R (arity i.val)) →\n            (kernels : Fin b → Bool → Bool → R) →\n              Counting.Gadget.Presentation (Counting.Bridge.Holant.adapt (g.network hg signatures kernels)).language\n                (Fin g.boundary)","role":"public","source_line":15,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/S1.lean","source_sha256":"0c5de099d602cc2ad73e9a8942aca553e92c8d9f1fa70b1f15f66247ceab0abf","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/S1.lean#L15","type":"{R : Type} →\n  {s b : Nat} →\n    {arity : Nat → Nat} →\n      (g : Holant.Complexity.FixedGadgetSubstitution.Template) →\n        (hg : Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity g) →\n          (signatures : (i : Fin s) → Holant.Signature.{0} R (arity (@Fin.val s i))) →\n            (kernels : Fin b → Bool → Bool → R) →\n              @Counting.Gadget.Presentation Bool R\n                (Sum.{0, 0}\n                  (Fin\n                    (@Counting.Model.KernelNetworkShape.vertices\n                      (Fin (Holant.Complexity.FixedGadgetSubstitution.Template.boundary g))\n                      (@Counting.Model.KernelNetwork.shape Bool R\n                        (Fin (Holant.Complexity.FixedGadgetSubstitution.Template.boundary g))\n                        (@Counting.Bridge.Holant.adapt R (Holant.Complexity.FixedGadgetSubstitution.Template.boundary g)\n                          (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0} s b arity g hg R signatures\n                            kernels)))))\n                  (Fin\n                    (@Counting.Model.KernelNetworkShape.edges\n                      (Fin (Holant.Complexity.FixedGadgetSubstitution.Template.boundary g))\n                      (@Counting.Model.KernelNetwork.shape Bool R\n                        (Fin (Holant.Complexity.FixedGadgetSubstitution.Template.boundary g))\n                        (@Counting.Bridge.Holant.adapt R (Holant.Complexity.FixedGadgetSubstitution.Template.boundary g)\n                          (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0} s b arity g hg R signatures\n                            kernels))))))\n                (@Counting.Model.KernelNetwork.language Bool R\n                  (Fin (Holant.Complexity.FixedGadgetSubstitution.Template.boundary g))\n                  (@Counting.Bridge.Holant.adapt R (Holant.Complexity.FixedGadgetSubstitution.Template.boundary g)\n                    (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0} s b arity g hg R signatures\n                      kernels)))\n                (Fin (Holant.Complexity.FixedGadgetSubstitution.Template.boundary g))"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.templatePresentation_table","family":"gadget","import":"Counting.Reduction.FixedGadget.S1","kind":"theorem","module":"Counting.Reduction.FixedGadget.S1","name":"Counting.Reduction.FixedGadget.templatePresentation_table","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : Type} [inst : CommSemiring R] {s b : Nat} {arity : Nat → Nat}\n  (g : Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg : Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity g)\n  (signatures : (i : Fin s) → Holant.Signature R (arity i.val)) (kernels : Fin b → Bool → Bool → R)\n  (a : Fin g.boundary → Bool),\n  Eq ((Counting.Reduction.FixedGadget.templatePresentation g hg signatures kernels).table a)\n    ((g.network hg signatures kernels).denote a)","role":"public","source_line":25,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/S1.lean","source_sha256":"0c5de099d602cc2ad73e9a8942aca553e92c8d9f1fa70b1f15f66247ceab0abf","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/S1.lean#L25","type":"∀ {R : Type} [inst : CommSemiring.{0} R] {s b : Nat} {arity : Nat → Nat}\n  (g : Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg : Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity g)\n  (signatures : (i : Fin s) → Holant.Signature.{0} R (arity (@Fin.val s i))) (kernels : Fin b → Bool → Bool → R)\n  (a : Fin (Holant.Complexity.FixedGadgetSubstitution.Template.boundary g) → Bool),\n  @Eq.{1} R\n    (@Counting.Gadget.Presentation.table Bool R\n      (Sum.{0, 0}\n        (Fin\n          (@Counting.Model.KernelNetworkShape.vertices\n            (Fin (Holant.Complexity.FixedGadgetSubstitution.Template.boundary g))\n            (@Counting.Model.KernelNetwork.shape Bool R\n              (Fin (Holant.Complexity.FixedGadgetSubstitution.Template.boundary g))\n              (@Counting.Bridge.Holant.adapt R (Holant.Complexity.FixedGadgetSubstitution.Template.boundary g)\n                (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0} s b arity g hg R signatures\n                  kernels)))))\n        (Fin\n          (@Counting.Model.KernelNetworkShape.edges\n            (Fin (Holant.Complexity.FixedGadgetSubstitution.Template.boundary g))\n            (@Counting.Model.KernelNetwork.shape Bool R\n              (Fin (Holant.Complexity.FixedGadgetSubstitution.Template.boundary g))\n              (@Counting.Bridge.Holant.adapt R (Holant.Complexity.FixedGadgetSubstitution.Template.boundary g)\n                (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0} s b arity g hg R signatures\n                  kernels))))))\n      (Fin (Holant.Complexity.FixedGadgetSubstitution.Template.boundary g))\n      (@Counting.Model.KernelNetwork.language Bool R\n        (Fin (Holant.Complexity.FixedGadgetSubstitution.Template.boundary g))\n        (@Counting.Bridge.Holant.adapt R (Holant.Complexity.FixedGadgetSubstitution.Template.boundary g)\n          (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0} s b arity g hg R signatures kernels)))\n      inst Bool.fintype (@Counting.Reduction.FixedGadget.templatePresentation R s b arity g hg signatures kernels) a)\n    (@Holant.Network.denote.{0} R inst (Holant.Complexity.FixedGadgetSubstitution.Template.boundary g)\n      (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0} s b arity g hg R signatures kernels) a)"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.value","family":"gadget","import":"Counting.Reduction.FixedGadget.Basic","kind":"definition","module":"Counting.Reduction.FixedGadget.Basic","name":"Counting.Reduction.FixedGadget.value","name_semantics":"actual named kernel declaration","readable_type":"{s b : Nat} →\n  {arity : Nat → Nat} →\n    {R : Type} →\n      [CommSemiring R] →\n        ((i : Fin s) → Holant.Signature R (arity i.val)) →\n          (Fin b → Bool → Bool → R) → Counting.Reduction.FixedGadget.Input s b arity → R","role":"public","source_line":28,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Basic.lean","source_sha256":"bee9417d78281689259a9ec12d71c39001f1c807de49eca34e14d00f4abd785f","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Basic.lean#L28","specification":"fun {s b : Nat} {arity : Nat → Nat} {R : Type} [inst : CommSemiring.{0} R]\n    (signatures : (i : Fin s) → Holant.Signature.{0} R (arity (@Fin.val s i))) (kernels : Fin b → Bool → Bool → R)\n    (r : Counting.Reduction.FixedGadget.Input s b arity) =>\n  @Holant.Network.denote.{0} R inst (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n    (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n      (@Subtype.val.{1} Holant.Complexity.RawClosedNetwork\n        (fun (r : Holant.Complexity.RawClosedNetwork) => Holant.Complexity.RawClosedNetwork.WellFormed s b arity r) r)\n      R (@Counting.Reduction.FixedGadget.value._proof_1 s b arity r) signatures kernels)\n    (@Fin.elim0.{1} Bool)","type":"{s b : Nat} →\n  {arity : Nat → Nat} →\n    {R : Type} →\n      [CommSemiring.{0} R] →\n        (signatures : (i : Fin s) → Holant.Signature.{0} R (arity (@Fin.val s i))) →\n          (kernels : Fin b → Bool → Bool → R) → (r : Counting.Reduction.FixedGadget.Input s b arity) → R"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.value_compile","family":"gadget","import":"Counting.Reduction.FixedGadget.Basic","kind":"theorem","module":"Counting.Reduction.FixedGadget.Basic","name":"Counting.Reduction.FixedGadget.value_compile","name_semantics":"actual named kernel declaration","readable_type":"∀ {sourceCount s b : Nat} {arity : Nat → Nat} {R : Type} [inst : CommSemiring R]\n  (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      instLTNat.lt i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  (source :\n    (i : Fin sourceCount) → Holant.Signature R (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates i.val))\n  (signatures : (i : Fin s) → Holant.Signature R (arity i.val)) (kernels : Fin b → Bool → Bool → R),\n  (∀ (i : Fin sourceCount),\n      Eq (Counting.Reduction.FixedGadget.macroSignatures templates hg signatures kernels i) (source i)) →\n    ∀\n      (r :\n        Counting.Reduction.FixedGadget.Input sourceCount b\n          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)),\n      Eq\n        (Counting.Reduction.FixedGadget.value signatures kernels\n          (Counting.Reduction.FixedGadget.compile templates hg r))\n        (Counting.Reduction.FixedGadget.value source kernels r)","role":"public","source_line":43,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Basic.lean","source_sha256":"bee9417d78281689259a9ec12d71c39001f1c807de49eca34e14d00f4abd785f","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Basic.lean#L43","type":"∀ {sourceCount s b : Nat} {arity : Nat → Nat} {R : Type} [inst : CommSemiring.{0} R]\n  (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      @LT.lt.{0} Nat instLTNat i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  (source :\n    (i : Fin sourceCount) →\n      Holant.Signature.{0} R (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates (@Fin.val sourceCount i)))\n  (signatures : (i : Fin s) → Holant.Signature.{0} R (arity (@Fin.val s i))) (kernels : Fin b → Bool → Bool → R)\n  (hlocal :\n    ∀ (i : Fin sourceCount),\n      @Eq.{1}\n        (Holant.Signature.{0} R\n          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates (@Fin.val sourceCount i)))\n        (@Counting.Reduction.FixedGadget.macroSignatures sourceCount s b arity R inst templates hg signatures kernels i)\n        (source i))\n  (r :\n    Counting.Reduction.FixedGadget.Input sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)),\n  @Eq.{1} R\n    (@Counting.Reduction.FixedGadget.value s b arity R inst signatures kernels\n      (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n    (@Counting.Reduction.FixedGadget.value sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) R inst source kernels r)"},{"category":"tools","display_name":"Counting.Reduction.FixedGadget.value_compile_macros","family":"gadget","import":"Counting.Reduction.FixedGadget.Basic","kind":"theorem","module":"Counting.Reduction.FixedGadget.Basic","name":"Counting.Reduction.FixedGadget.value_compile_macros","name_semantics":"actual named kernel declaration","readable_type":"∀ {sourceCount s b : Nat} {arity : Nat → Nat} {R : Type} [inst : CommSemiring R]\n  (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      instLTNat.lt i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  (signatures : (i : Fin s) → Holant.Signature R (arity i.val)) (kernels : Fin b → Bool → Bool → R)\n  (r :\n    Counting.Reduction.FixedGadget.Input sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)),\n  Eq (Counting.Reduction.FixedGadget.value signatures kernels (Counting.Reduction.FixedGadget.compile templates hg r))\n    (Counting.Reduction.FixedGadget.value\n      (Counting.Reduction.FixedGadget.macroSignatures templates hg signatures kernels) kernels r)","role":"public","source_line":57,"source_path":"projects/gadget-reductions/Counting/Reduction/FixedGadget/Basic.lean","source_sha256":"bee9417d78281689259a9ec12d71c39001f1c807de49eca34e14d00f4abd785f","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/gadget-reductions/Counting/Reduction/FixedGadget/Basic.lean#L57","type":"∀ {sourceCount s b : Nat} {arity : Nat → Nat} {R : Type} [inst : CommSemiring.{0} R]\n  (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (hg :\n    ∀ (i : Nat),\n      @LT.lt.{0} Nat instLTNat i sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates i))\n  (signatures : (i : Fin s) → Holant.Signature.{0} R (arity (@Fin.val s i))) (kernels : Fin b → Bool → Bool → R)\n  (r :\n    Counting.Reduction.FixedGadget.Input sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates)),\n  @Eq.{1} R\n    (@Counting.Reduction.FixedGadget.value s b arity R inst signatures kernels\n      (@Counting.Reduction.FixedGadget.compile sourceCount s b arity templates hg r))\n    (@Counting.Reduction.FixedGadget.value sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) R inst\n      (@Counting.Reduction.FixedGadget.macroSignatures sourceCount s b arity R inst templates hg signatures kernels)\n      kernels r)"},{"category":"tools","display_name":"Counting.SharpPClosure.Clients.ignored_suffix_counts_twenty_four","family":"sharpp","import":"Counting.SharpPClosure.Clients","kind":"theorem","module":"Counting.SharpPClosure.Clients","name":"Counting.SharpPClosure.Clients.ignored_suffix_counts_twenty_four","name_semantics":"actual named kernel declaration","readable_type":"Eq (Counting.Foundation.witnessCount 5 fun bits => (List.take 2 bits).any id) 24","role":"client","source_line":89,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Clients.lean","source_sha256":"1762c35d3b69d774c874ec3e5089422639b3b30915e14a9d8775d0f82fa67245","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Clients.lean#L89","type":"@Eq.{1} Nat\n  (Counting.Foundation.witnessCount (@OfNat.ofNat.{0} Nat (nat_lit 5) (instOfNatNat (nat_lit 5)))\n    fun (bits : List.{0} Bool) =>\n    @List.any.{0} Bool (@List.take.{0} Bool (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) bits)\n      (@id.{1} Bool))\n  (@OfNat.ofNat.{0} Nat (nat_lit 24) (instOfNatNat (nat_lit 24)))"},{"category":"tools","display_name":"Counting.SharpPClosure.Clients.inflation_is_detected","family":"sharpp","import":"Counting.SharpPClosure.Clients","kind":"theorem","module":"Counting.SharpPClosure.Clients","name":"Counting.SharpPClosure.Clients.inflation_is_detected","name_semantics":"actual named kernel declaration","readable_type":"Ne (Counting.Foundation.witnessCount 5 fun bits => (List.take 2 bits).any id)\n  (Counting.Foundation.witnessCount 5 fun bits =>\n    Counting.SharpPClosure.Clients.nonzeroTransport.accept\n      { fst := List.cons Bool.false (List.cons Bool.true List.nil), snd := bits })","role":"client","source_line":98,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Clients.lean","source_sha256":"1762c35d3b69d774c874ec3e5089422639b3b30915e14a9d8775d0f82fa67245","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Clients.lean#L98","type":"@Ne.{1} Nat\n  (Counting.Foundation.witnessCount (@OfNat.ofNat.{0} Nat (nat_lit 5) (instOfNatNat (nat_lit 5)))\n    fun (bits : List.{0} Bool) =>\n    @List.any.{0} Bool (@List.take.{0} Bool (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) bits)\n      (@id.{1} Bool))\n  (Counting.Foundation.witnessCount (@OfNat.ofNat.{0} Nat (nat_lit 5) (instOfNatNat (nat_lit 5)))\n    fun (bits : List.{0} Bool) =>\n    @Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool)\n      (fun (x : PlanarHom.Complexity.Bits) =>\n        @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      Counting.SharpPClosure.Clients.nonzeroTransport\n      (@Prod.mk.{0, 0} (List.{0} Bool) (List.{0} Bool)\n        (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool))) bits))"},{"category":"tools","display_name":"Counting.SharpPClosure.Clients.nonzero_count_three","family":"sharpp","import":"Counting.SharpPClosure.Clients","kind":"theorem","module":"Counting.SharpPClosure.Clients","name":"Counting.SharpPClosure.Clients.nonzero_count_three","name_semantics":"actual named kernel declaration","readable_type":"Eq\n  (Counting.Foundation.witnessCount 5 fun bits =>\n    Counting.SharpPClosure.Clients.nonzeroTransport.accept\n      { fst := List.cons Bool.false (List.cons Bool.true List.nil), snd := bits })\n  3","role":"client","source_line":60,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Clients.lean","source_sha256":"1762c35d3b69d774c874ec3e5089422639b3b30915e14a9d8775d0f82fa67245","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Clients.lean#L60","type":"@Eq.{1} Nat\n  (Counting.Foundation.witnessCount (@OfNat.ofNat.{0} Nat (nat_lit 5) (instOfNatNat (nat_lit 5)))\n    fun (bits : List.{0} Bool) =>\n    @Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool)\n      (fun (x : PlanarHom.Complexity.Bits) =>\n        @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      Counting.SharpPClosure.Clients.nonzeroTransport\n      (@Prod.mk.{0, 0} (List.{0} Bool) (List.{0} Bool)\n        (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool))) bits))\n  (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))"},{"category":"tools","display_name":"Counting.SharpPClosure.Clients.padded_machine_output","family":"sharpp","import":"Counting.SharpPClosure.Clients","kind":"definition","module":"Counting.SharpPClosure.Clients","name":"Counting.SharpPClosure.Clients.padded_machine_output","name_semantics":"actual named kernel declaration","readable_type":"have m := Counting.SharpPClosure.Clients.nonzeroTransport.verifier;\nTuring.TM2OutputsInTime m.tm\n  (List.map (EquivLike.toFunLike.coe m.inputAlphabet.symm)\n    ((Computability.encodingProd (Computability.encodingList Bool) (Computability.encodingList Bool)).encode\n      { fst := List.cons Bool.false (List.cons Bool.true List.nil),\n        snd :=\n          List.cons Bool.true\n            (List.cons Bool.false (List.cons Bool.false (List.cons Bool.false (List.cons Bool.false List.nil)))) }))\n  (Option.some (List.map (EquivLike.toFunLike.coe m.outputAlphabet.symm) (List.cons (Sum.inr Bool.true) List.nil)))\n  (Polynomial.eval 7 m.time)","role":"client","source_line":202,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Clients.lean","source_sha256":"1762c35d3b69d774c874ec3e5089422639b3b30915e14a9d8775d0f82fa67245","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Clients.lean#L202","type":"have m :\n  @Holant.Complexity.PolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool (Sum.{0, 0} Bool Bool)\n    (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n      (Computability.encodingList Bool) (Computability.encodingList Bool))\n    (Holant.Complexity.taggedBoolEncoding Bool)\n    (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool)\n      (fun (x : PlanarHom.Complexity.Bits) =>\n        @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      Counting.SharpPClosure.Clients.nonzeroTransport) :=\n  @Counting.Complexity.SharpPWitness.verifier (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool)\n    (fun (x : PlanarHom.Complexity.Bits) =>\n      @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n    Counting.SharpPClosure.Clients.nonzeroTransport;\nTuring.TM2OutputsInTime\n  (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n      (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n      (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n          (Computability.encodingList Bool) (Computability.encodingList Bool)))\n      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool) (Holant.Complexity.taggedBoolEncoding Bool))\n      (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool)\n        (fun (x : PlanarHom.Complexity.Bits) =>\n          @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n            (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n              (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        Counting.SharpPClosure.Clients.nonzeroTransport)\n      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n        (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n          (Computability.encodingList Bool) (Computability.encodingList Bool))\n        (Holant.Complexity.taggedBoolEncoding Bool)\n        (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool)\n          (fun (x : PlanarHom.Complexity.Bits) =>\n            @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n              (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          Counting.SharpPClosure.Clients.nonzeroTransport)\n        m)))\n  (@List.map.{0, 0} (Sum.{0, 0} Bool Bool)\n    (Turing.FinTM2.Γ\n      (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n          (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n          (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n            (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n              (Computability.encodingList Bool) (Computability.encodingList Bool)))\n          (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n            (Holant.Complexity.taggedBoolEncoding Bool))\n          (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool)\n            (fun (x : PlanarHom.Complexity.Bits) =>\n              @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                  (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            Counting.SharpPClosure.Clients.nonzeroTransport)\n          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n            (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n            (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n            (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n              (Computability.encodingList Bool) (Computability.encodingList Bool))\n            (Holant.Complexity.taggedBoolEncoding Bool)\n            (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n              (Computability.encodingList Bool)\n              (fun (x : PlanarHom.Complexity.Bits) =>\n                @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                  (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                    (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              Counting.SharpPClosure.Clients.nonzeroTransport)\n            m)))\n      (Turing.FinTM2.k₀\n        (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n            (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool)))\n            (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n              (Holant.Complexity.taggedBoolEncoding Bool))\n            (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n              (Computability.encodingList Bool)\n              (fun (x : PlanarHom.Complexity.Bits) =>\n                @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                  (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                    (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              Counting.SharpPClosure.Clients.nonzeroTransport)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool))\n              (Holant.Complexity.taggedBoolEncoding Bool)\n              (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                (Computability.encodingList Bool)\n                (fun (x : PlanarHom.Complexity.Bits) =>\n                  @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                    (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                      (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                Counting.SharpPClosure.Clients.nonzeroTransport)\n              m)))))\n    (@DFunLike.coe.{1, 1, 1}\n      (Equiv.{1, 1} (Sum.{0, 0} Bool Bool)\n        (Turing.FinTM2.Γ\n          (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                (Sum.{0, 0} Bool Bool)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool)))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool))\n              (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                (Computability.encodingList Bool)\n                (fun (x : PlanarHom.Complexity.Bits) =>\n                  @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                    (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                      (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                Counting.SharpPClosure.Clients.nonzeroTransport)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool))\n                (Holant.Complexity.taggedBoolEncoding Bool)\n                (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                  (Computability.encodingList Bool)\n                  (fun (x : PlanarHom.Complexity.Bits) =>\n                    @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                  Counting.SharpPClosure.Clients.nonzeroTransport)\n                m)))\n          (Turing.FinTM2.k₀\n            (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  (Sum.{0, 0} Bool Bool)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                  (Computability.encodingList Bool)\n                  (fun (x : PlanarHom.Complexity.Bits) =>\n                    @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                  Counting.SharpPClosure.Clients.nonzeroTransport)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool))\n                  (Holant.Complexity.taggedBoolEncoding Bool)\n                  (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                    (Computability.encodingList Bool)\n                    (fun (x : PlanarHom.Complexity.Bits) =>\n                      @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                    Counting.SharpPClosure.Clients.nonzeroTransport)\n                  m))))))\n      (Sum.{0, 0} Bool Bool)\n      (fun (x : Sum.{0, 0} Bool Bool) =>\n        Turing.FinTM2.Γ\n          (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                (Sum.{0, 0} Bool Bool)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool)))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool))\n              (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                (Computability.encodingList Bool)\n                (fun (x : PlanarHom.Complexity.Bits) =>\n                  @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                    (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                      (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                Counting.SharpPClosure.Clients.nonzeroTransport)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool))\n                (Holant.Complexity.taggedBoolEncoding Bool)\n                (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                  (Computability.encodingList Bool)\n                  (fun (x : PlanarHom.Complexity.Bits) =>\n                    @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                  Counting.SharpPClosure.Clients.nonzeroTransport)\n                m)))\n          (Turing.FinTM2.k₀\n            (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  (Sum.{0, 0} Bool Bool)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                  (Computability.encodingList Bool)\n                  (fun (x : PlanarHom.Complexity.Bits) =>\n                    @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                  Counting.SharpPClosure.Clients.nonzeroTransport)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool))\n                  (Holant.Complexity.taggedBoolEncoding Bool)\n                  (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                    (Computability.encodingList Bool)\n                    (fun (x : PlanarHom.Complexity.Bits) =>\n                      @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                    Counting.SharpPClosure.Clients.nonzeroTransport)\n                  m)))))\n      (@EquivLike.toFunLike.{1, 1, 1}\n        (Equiv.{1, 1} (Sum.{0, 0} Bool Bool)\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  (Sum.{0, 0} Bool Bool)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                  (Computability.encodingList Bool)\n                  (fun (x : PlanarHom.Complexity.Bits) =>\n                    @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                  Counting.SharpPClosure.Clients.nonzeroTransport)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool))\n                  (Holant.Complexity.taggedBoolEncoding Bool)\n                  (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                    (Computability.encodingList Bool)\n                    (fun (x : PlanarHom.Complexity.Bits) =>\n                      @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                    Counting.SharpPClosure.Clients.nonzeroTransport)\n                  m)))\n            (Turing.FinTM2.k₀\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                    (Computability.encodingList Bool)\n                    (fun (x : PlanarHom.Complexity.Bits) =>\n                      @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                    Counting.SharpPClosure.Clients.nonzeroTransport)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool)\n                    (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                      (Computability.encodingList Bool)\n                      (fun (x : PlanarHom.Complexity.Bits) =>\n                        @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                      Counting.SharpPClosure.Clients.nonzeroTransport)\n                    m))))))\n        (Sum.{0, 0} Bool Bool)\n        (Turing.FinTM2.Γ\n          (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                (Sum.{0, 0} Bool Bool)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool)))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool))\n              (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                (Computability.encodingList Bool)\n                (fun (x : PlanarHom.Complexity.Bits) =>\n                  @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                    (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                      (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                Counting.SharpPClosure.Clients.nonzeroTransport)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool))\n                (Holant.Complexity.taggedBoolEncoding Bool)\n                (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                  (Computability.encodingList Bool)\n                  (fun (x : PlanarHom.Complexity.Bits) =>\n                    @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                  Counting.SharpPClosure.Clients.nonzeroTransport)\n                m)))\n          (Turing.FinTM2.k₀\n            (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  (Sum.{0, 0} Bool Bool)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                  (Computability.encodingList Bool)\n                  (fun (x : PlanarHom.Complexity.Bits) =>\n                    @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                  Counting.SharpPClosure.Clients.nonzeroTransport)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool))\n                  (Holant.Complexity.taggedBoolEncoding Bool)\n                  (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                    (Computability.encodingList Bool)\n                    (fun (x : PlanarHom.Complexity.Bits) =>\n                      @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                    Counting.SharpPClosure.Clients.nonzeroTransport)\n                  m)))))\n        (@Equiv.instEquivLike.{1, 1} (Sum.{0, 0} Bool Bool)\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  (Sum.{0, 0} Bool Bool)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                  (Computability.encodingList Bool)\n                  (fun (x : PlanarHom.Complexity.Bits) =>\n                    @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                  Counting.SharpPClosure.Clients.nonzeroTransport)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool))\n                  (Holant.Complexity.taggedBoolEncoding Bool)\n                  (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                    (Computability.encodingList Bool)\n                    (fun (x : PlanarHom.Complexity.Bits) =>\n                      @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                    Counting.SharpPClosure.Clients.nonzeroTransport)\n                  m)))\n            (Turing.FinTM2.k₀\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                    (Computability.encodingList Bool)\n                    (fun (x : PlanarHom.Complexity.Bits) =>\n                      @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                    Counting.SharpPClosure.Clients.nonzeroTransport)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool)\n                    (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                      (Computability.encodingList Bool)\n                      (fun (x : PlanarHom.Complexity.Bits) =>\n                        @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                      Counting.SharpPClosure.Clients.nonzeroTransport)\n                    m)))))))\n      (@Equiv.symm.{1, 1}\n        (Turing.FinTM2.Γ\n          (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                (Sum.{0, 0} Bool Bool)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool)))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool))\n              (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                (Computability.encodingList Bool)\n                (fun (x : PlanarHom.Complexity.Bits) =>\n                  @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                    (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                      (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                Counting.SharpPClosure.Clients.nonzeroTransport)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool))\n                (Holant.Complexity.taggedBoolEncoding Bool)\n                (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                  (Computability.encodingList Bool)\n                  (fun (x : PlanarHom.Complexity.Bits) =>\n                    @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                  Counting.SharpPClosure.Clients.nonzeroTransport)\n                m)))\n          (Turing.FinTM2.k₀\n            (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  (Sum.{0, 0} Bool Bool)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                  (Computability.encodingList Bool)\n                  (fun (x : PlanarHom.Complexity.Bits) =>\n                    @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                  Counting.SharpPClosure.Clients.nonzeroTransport)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool))\n                  (Holant.Complexity.taggedBoolEncoding Bool)\n                  (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                    (Computability.encodingList Bool)\n                    (fun (x : PlanarHom.Complexity.Bits) =>\n                      @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                    Counting.SharpPClosure.Clients.nonzeroTransport)\n                  m)))))\n        (Sum.{0, 0} Bool Bool)\n        (@Turing.TM2ComputableAux.inputAlphabet (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n            (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool)))\n            (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n              (Holant.Complexity.taggedBoolEncoding Bool))\n            (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n              (Computability.encodingList Bool)\n              (fun (x : PlanarHom.Complexity.Bits) =>\n                @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                  (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                    (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              Counting.SharpPClosure.Clients.nonzeroTransport)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool))\n              (Holant.Complexity.taggedBoolEncoding Bool)\n              (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                (Computability.encodingList Bool)\n                (fun (x : PlanarHom.Complexity.Bits) =>\n                  @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                    (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                      (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                Counting.SharpPClosure.Clients.nonzeroTransport)\n              m)))))\n    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n        (Computability.encodingList Bool) (Computability.encodingList Bool))\n      (@Prod.mk.{0, 0} (List.{0} Bool) (List.{0} Bool)\n        (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n        (@List.cons.{0} Bool Bool.true\n          (@List.cons.{0} Bool Bool.false\n            (@List.cons.{0} Bool Bool.false\n              (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool)))))))))\n  (@Option.some.{0}\n    (List.{0}\n      (Turing.FinTM2.Γ\n        (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n            (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool)))\n            (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n              (Holant.Complexity.taggedBoolEncoding Bool))\n            (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n              (Computability.encodingList Bool)\n              (fun (x : PlanarHom.Complexity.Bits) =>\n                @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                  (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                    (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              Counting.SharpPClosure.Clients.nonzeroTransport)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool))\n              (Holant.Complexity.taggedBoolEncoding Bool)\n              (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                (Computability.encodingList Bool)\n                (fun (x : PlanarHom.Complexity.Bits) =>\n                  @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                    (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                      (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                Counting.SharpPClosure.Clients.nonzeroTransport)\n              m)))\n        (Turing.FinTM2.k₁\n          (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                (Sum.{0, 0} Bool Bool)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool)))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool))\n              (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                (Computability.encodingList Bool)\n                (fun (x : PlanarHom.Complexity.Bits) =>\n                  @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                    (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                      (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                Counting.SharpPClosure.Clients.nonzeroTransport)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool))\n                (Holant.Complexity.taggedBoolEncoding Bool)\n                (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                  (Computability.encodingList Bool)\n                  (fun (x : PlanarHom.Complexity.Bits) =>\n                    @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                  Counting.SharpPClosure.Clients.nonzeroTransport)\n                m))))))\n    (@List.map.{0, 0} (Sum.{0, 0} Bool Bool)\n      (Turing.FinTM2.Γ\n        (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n            (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool)))\n            (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n              (Holant.Complexity.taggedBoolEncoding Bool))\n            (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n              (Computability.encodingList Bool)\n              (fun (x : PlanarHom.Complexity.Bits) =>\n                @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                  (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                    (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              Counting.SharpPClosure.Clients.nonzeroTransport)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool))\n              (Holant.Complexity.taggedBoolEncoding Bool)\n              (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                (Computability.encodingList Bool)\n                (fun (x : PlanarHom.Complexity.Bits) =>\n                  @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                    (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                      (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                Counting.SharpPClosure.Clients.nonzeroTransport)\n              m)))\n        (Turing.FinTM2.k₁\n          (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                (Sum.{0, 0} Bool Bool)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool)))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool))\n              (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                (Computability.encodingList Bool)\n                (fun (x : PlanarHom.Complexity.Bits) =>\n                  @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                    (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                      (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                Counting.SharpPClosure.Clients.nonzeroTransport)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool))\n                (Holant.Complexity.taggedBoolEncoding Bool)\n                (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                  (Computability.encodingList Bool)\n                  (fun (x : PlanarHom.Complexity.Bits) =>\n                    @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                  Counting.SharpPClosure.Clients.nonzeroTransport)\n                m)))))\n      (@DFunLike.coe.{1, 1, 1}\n        (Equiv.{1, 1} (Sum.{0, 0} Bool Bool)\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  (Sum.{0, 0} Bool Bool)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                  (Computability.encodingList Bool)\n                  (fun (x : PlanarHom.Complexity.Bits) =>\n                    @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                  Counting.SharpPClosure.Clients.nonzeroTransport)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool))\n                  (Holant.Complexity.taggedBoolEncoding Bool)\n                  (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                    (Computability.encodingList Bool)\n                    (fun (x : PlanarHom.Complexity.Bits) =>\n                      @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                    Counting.SharpPClosure.Clients.nonzeroTransport)\n                  m)))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                    (Computability.encodingList Bool)\n                    (fun (x : PlanarHom.Complexity.Bits) =>\n                      @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                    Counting.SharpPClosure.Clients.nonzeroTransport)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool)\n                    (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                      (Computability.encodingList Bool)\n                      (fun (x : PlanarHom.Complexity.Bits) =>\n                        @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                      Counting.SharpPClosure.Clients.nonzeroTransport)\n                    m))))))\n        (Sum.{0, 0} Bool Bool)\n        (fun (x : Sum.{0, 0} Bool Bool) =>\n          Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  (Sum.{0, 0} Bool Bool)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                  (Computability.encodingList Bool)\n                  (fun (x : PlanarHom.Complexity.Bits) =>\n                    @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                  Counting.SharpPClosure.Clients.nonzeroTransport)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool))\n                  (Holant.Complexity.taggedBoolEncoding Bool)\n                  (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                    (Computability.encodingList Bool)\n                    (fun (x : PlanarHom.Complexity.Bits) =>\n                      @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                    Counting.SharpPClosure.Clients.nonzeroTransport)\n                  m)))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                    (Computability.encodingList Bool)\n                    (fun (x : PlanarHom.Complexity.Bits) =>\n                      @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                    Counting.SharpPClosure.Clients.nonzeroTransport)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool)\n                    (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                      (Computability.encodingList Bool)\n                      (fun (x : PlanarHom.Complexity.Bits) =>\n                        @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                      Counting.SharpPClosure.Clients.nonzeroTransport)\n                    m)))))\n        (@EquivLike.toFunLike.{1, 1, 1}\n          (Equiv.{1, 1} (Sum.{0, 0} Bool Bool)\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                    (Computability.encodingList Bool)\n                    (fun (x : PlanarHom.Complexity.Bits) =>\n                      @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                    Counting.SharpPClosure.Clients.nonzeroTransport)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool)\n                    (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                      (Computability.encodingList Bool)\n                      (fun (x : PlanarHom.Complexity.Bits) =>\n                        @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                      Counting.SharpPClosure.Clients.nonzeroTransport)\n                    m)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                      (Computability.encodingList Bool)\n                      (fun (x : PlanarHom.Complexity.Bits) =>\n                        @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                      Counting.SharpPClosure.Clients.nonzeroTransport)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool)\n                      (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                        (Computability.encodingList Bool)\n                        (fun (x : PlanarHom.Complexity.Bits) =>\n                          @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                            (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                              (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                              (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                        Counting.SharpPClosure.Clients.nonzeroTransport)\n                      m))))))\n          (Sum.{0, 0} Bool Bool)\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  (Sum.{0, 0} Bool Bool)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                  (Computability.encodingList Bool)\n                  (fun (x : PlanarHom.Complexity.Bits) =>\n                    @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                  Counting.SharpPClosure.Clients.nonzeroTransport)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool))\n                  (Holant.Complexity.taggedBoolEncoding Bool)\n                  (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                    (Computability.encodingList Bool)\n                    (fun (x : PlanarHom.Complexity.Bits) =>\n                      @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                    Counting.SharpPClosure.Clients.nonzeroTransport)\n                  m)))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                    (Computability.encodingList Bool)\n                    (fun (x : PlanarHom.Complexity.Bits) =>\n                      @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                    Counting.SharpPClosure.Clients.nonzeroTransport)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool)\n                    (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                      (Computability.encodingList Bool)\n                      (fun (x : PlanarHom.Complexity.Bits) =>\n                        @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                      Counting.SharpPClosure.Clients.nonzeroTransport)\n                    m)))))\n          (@Equiv.instEquivLike.{1, 1} (Sum.{0, 0} Bool Bool)\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                    (Computability.encodingList Bool)\n                    (fun (x : PlanarHom.Complexity.Bits) =>\n                      @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                    Counting.SharpPClosure.Clients.nonzeroTransport)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool)\n                    (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                      (Computability.encodingList Bool)\n                      (fun (x : PlanarHom.Complexity.Bits) =>\n                        @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                      Counting.SharpPClosure.Clients.nonzeroTransport)\n                    m)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                      (Computability.encodingList Bool)\n                      (fun (x : PlanarHom.Complexity.Bits) =>\n                        @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                      Counting.SharpPClosure.Clients.nonzeroTransport)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool)\n                      (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                        (Computability.encodingList Bool)\n                        (fun (x : PlanarHom.Complexity.Bits) =>\n                          @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                            (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                              (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                              (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                        Counting.SharpPClosure.Clients.nonzeroTransport)\n                      m)))))))\n        (@Equiv.symm.{1, 1}\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  (Sum.{0, 0} Bool Bool)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                  (Computability.encodingList Bool)\n                  (fun (x : PlanarHom.Complexity.Bits) =>\n                    @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                  Counting.SharpPClosure.Clients.nonzeroTransport)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool))\n                  (Holant.Complexity.taggedBoolEncoding Bool)\n                  (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                    (Computability.encodingList Bool)\n                    (fun (x : PlanarHom.Complexity.Bits) =>\n                      @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                    Counting.SharpPClosure.Clients.nonzeroTransport)\n                  m)))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                    (Computability.encodingList Bool)\n                    (fun (x : PlanarHom.Complexity.Bits) =>\n                      @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                    Counting.SharpPClosure.Clients.nonzeroTransport)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool)\n                    (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                      (Computability.encodingList Bool)\n                      (fun (x : PlanarHom.Complexity.Bits) =>\n                        @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                      Counting.SharpPClosure.Clients.nonzeroTransport)\n                    m)))))\n          (Sum.{0, 0} Bool Bool)\n          (@Turing.TM2ComputableAux.outputAlphabet (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                (Sum.{0, 0} Bool Bool)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool)))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool))\n              (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                (Computability.encodingList Bool)\n                (fun (x : PlanarHom.Complexity.Bits) =>\n                  @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                    (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                      (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                Counting.SharpPClosure.Clients.nonzeroTransport)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool))\n                (Holant.Complexity.taggedBoolEncoding Bool)\n                (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                  (Computability.encodingList Bool)\n                  (fun (x : PlanarHom.Complexity.Bits) =>\n                    @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                  Counting.SharpPClosure.Clients.nonzeroTransport)\n                m)))))\n      (@List.cons.{0} (Sum.{0, 0} Bool Bool) (@Sum.inr.{0, 0} Bool Bool Bool.true)\n        (@List.nil.{0} (Sum.{0, 0} Bool Bool)))))\n  (@Polynomial.eval.{0} Nat Nat.instSemiring (@OfNat.ofNat.{0} Nat (nat_lit 7) (instOfNatNat (nat_lit 7)))\n    (@Turing.TM2ComputableInPolyTime.time (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool (Sum.{0, 0} Bool Bool)\n      (Sum.{0, 0} Bool Bool)\n      (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n          (Computability.encodingList Bool) (Computability.encodingList Bool)))\n      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool) (Holant.Complexity.taggedBoolEncoding Bool))\n      (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool)\n        (fun (x : PlanarHom.Complexity.Bits) =>\n          @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n            (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n              (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        Counting.SharpPClosure.Clients.nonzeroTransport)\n      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n        (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n          (Computability.encodingList Bool) (Computability.encodingList Bool))\n        (Holant.Complexity.taggedBoolEncoding Bool)\n        (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool)\n          (fun (x : PlanarHom.Complexity.Bits) =>\n            @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n              (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          Counting.SharpPClosure.Clients.nonzeroTransport)\n        m)))"},{"category":"tools","display_name":"Counting.SharpPClosure.Clients.rejects_short_witness","family":"sharpp","import":"Counting.SharpPClosure.Clients","kind":"theorem","module":"Counting.SharpPClosure.Clients","name":"Counting.SharpPClosure.Clients.rejects_short_witness","name_semantics":"actual named kernel declaration","readable_type":"Eq\n  (Counting.SharpPClosure.Clients.nonzeroTransport.accept\n    { fst := List.cons Bool.false (List.cons Bool.true List.nil), snd := List.cons Bool.true List.nil })\n  Bool.false","role":"client","source_line":77,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Clients.lean","source_sha256":"1762c35d3b69d774c874ec3e5089422639b3b30915e14a9d8775d0f82fa67245","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Clients.lean#L77","type":"@Eq.{1} Bool\n  (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool)\n    (fun (x : PlanarHom.Complexity.Bits) =>\n      @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n    Counting.SharpPClosure.Clients.nonzeroTransport\n    (@Prod.mk.{0, 0} (List.{0} Bool) (List.{0} Bool)\n      (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n      (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool))))\n  Bool.false"},{"category":"tools","display_name":"Counting.SharpPClosure.Clients.rejects_true_padding","family":"sharpp","import":"Counting.SharpPClosure.Clients","kind":"theorem","module":"Counting.SharpPClosure.Clients","name":"Counting.SharpPClosure.Clients.rejects_true_padding","name_semantics":"actual named kernel declaration","readable_type":"Eq\n  (Counting.SharpPClosure.Clients.nonzeroTransport.accept\n    { fst := List.cons Bool.false (List.cons Bool.true List.nil),\n      snd :=\n        List.cons Bool.true\n          (List.cons Bool.false (List.cons Bool.false (List.cons Bool.true (List.cons Bool.false List.nil)))) })\n  Bool.false","role":"client","source_line":72,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Clients.lean","source_sha256":"1762c35d3b69d774c874ec3e5089422639b3b30915e14a9d8775d0f82fa67245","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Clients.lean#L72","type":"@Eq.{1} Bool\n  (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool)\n    (fun (x : PlanarHom.Complexity.Bits) =>\n      @HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) (@List.length.{0} Bool x))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n    Counting.SharpPClosure.Clients.nonzeroTransport\n    (@Prod.mk.{0, 0} (List.{0} Bool) (List.{0} Bool)\n      (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n      (@List.cons.{0} Bool Bool.true\n        (@List.cons.{0} Bool Bool.false\n          (@List.cons.{0} Bool Bool.false\n            (@List.cons.{0} Bool Bool.true (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool))))))))\n  Bool.false"},{"category":"tools","display_name":"Counting.SharpPClosure.Clients.retained_pair_output","family":"sharpp","import":"Counting.SharpPClosure.Clients","kind":"definition","module":"Counting.SharpPClosure.Clients","name":"Counting.SharpPClosure.Clients.retained_pair_output","name_semantics":"actual named kernel declaration","readable_type":"have m := Counting.SharpPClosure.liftComputer Counting.Examples.reversePolyTime.toTM2ComputableInPolyTime;\nTuring.TM2OutputsInTime m.tm\n  (List.map (EquivLike.toFunLike.coe m.inputAlphabet.symm)\n    ((PlanarHom.Complexity.BitEncoding.bits.prod PlanarHom.Complexity.BitEncoding.bits).encode\n      { fst := List.cons Bool.false (List.cons Bool.true List.nil),\n        snd :=\n          List.cons Bool.true\n            (List.cons Bool.false (List.cons Bool.false (List.cons Bool.false (List.cons Bool.false List.nil)))) }))\n  (Option.some\n    (List.map (EquivLike.toFunLike.coe m.outputAlphabet.symm)\n      ((PlanarHom.Complexity.BitEncoding.bits.prod PlanarHom.Complexity.BitEncoding.bits).encode\n        { fst := List.cons Bool.true (List.cons Bool.false List.nil),\n          snd :=\n            List.cons Bool.true\n              (List.cons Bool.false (List.cons Bool.false (List.cons Bool.false (List.cons Bool.false List.nil)))) })))\n  (Polynomial.eval 10 m.time)","role":"client","source_line":189,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Clients.lean","source_sha256":"1762c35d3b69d774c874ec3e5089422639b3b30915e14a9d8775d0f82fa67245","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Clients.lean#L189","type":"have m :\n  @Turing.TM2ComputableInPolyTime (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n    (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n    (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n    fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n      (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p) :=\n  @Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype\n      Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) (@List.reverse.{0} Bool)\n      Counting.Examples.reversePolyTime);\nTuring.TM2OutputsInTime\n  (@Turing.TM2ComputableAux.tm Bool Bool\n    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n      (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n        @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n          (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n      m))\n  (@List.map.{0, 0} Bool\n    (Turing.FinTM2.Γ\n      (@Turing.TM2ComputableAux.tm Bool Bool\n        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n          (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n            @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n          m))\n      (Turing.FinTM2.k₀\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n            m))))\n    (@DFunLike.coe.{1, 1, 1}\n      (Equiv.{1, 1} Bool\n        (Turing.FinTM2.Γ\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              m))\n          (Turing.FinTM2.k₀\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                m)))))\n      Bool\n      (fun (x : Bool) =>\n        Turing.FinTM2.Γ\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              m))\n          (Turing.FinTM2.k₀\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                m))))\n      (@EquivLike.toFunLike.{1, 1, 1}\n        (Equiv.{1, 1} Bool\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                m))\n            (Turing.FinTM2.k₀\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  m)))))\n        Bool\n        (Turing.FinTM2.Γ\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              m))\n          (Turing.FinTM2.k₀\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                m))))\n        (@Equiv.instEquivLike.{1, 1} Bool\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                m))\n            (Turing.FinTM2.k₀\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  m))))))\n      (@Equiv.symm.{1, 1}\n        (Turing.FinTM2.Γ\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              m))\n          (Turing.FinTM2.k₀\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                m))))\n        Bool\n        (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n            m))))\n    (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n      (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n        (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n        (@List.cons.{0} Bool Bool.true\n          (@List.cons.{0} Bool Bool.false\n            (@List.cons.{0} Bool Bool.false\n              (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool)))))))))\n  (@Option.some.{0}\n    (List.{0}\n      (Turing.FinTM2.Γ\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n            m))\n        (Turing.FinTM2.k₁\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              m)))))\n    (@List.map.{0, 0} Bool\n      (Turing.FinTM2.Γ\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n            m))\n        (Turing.FinTM2.k₁\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              m))))\n      (@DFunLike.coe.{1, 1, 1}\n        (Equiv.{1, 1} Bool\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                m))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  m)))))\n        Bool\n        (fun (x : Bool) =>\n          Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                m))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  m))))\n        (@EquivLike.toFunLike.{1, 1, 1}\n          (Equiv.{1, 1} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  m))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (@List.reverse.{0} Bool\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    m)))))\n          Bool\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                m))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  m))))\n          (@Equiv.instEquivLike.{1, 1} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  m))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (@List.reverse.{0} Bool\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    m))))))\n        (@Equiv.symm.{1, 1}\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                m))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  m))))\n          Bool\n          (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              m))))\n      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n        (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n          (@List.cons.{0} Bool Bool.true (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool)))\n          (@List.cons.{0} Bool Bool.true\n            (@List.cons.{0} Bool Bool.false\n              (@List.cons.{0} Bool Bool.false\n                (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool))))))))))\n  (@Polynomial.eval.{0} Nat Nat.instSemiring (@OfNat.ofNat.{0} Nat (nat_lit 10) (instOfNatNat (nat_lit 10)))\n    (@Turing.TM2ComputableInPolyTime.time (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n      (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n        @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n          (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n      m))"},{"category":"tools","display_name":"Counting.SharpPClosure.Clients.retained_pair_steps","family":"sharpp","import":"Counting.SharpPClosure.Clients","kind":"theorem","module":"Counting.SharpPClosure.Clients","name":"Counting.SharpPClosure.Clients.retained_pair_steps","name_semantics":"actual named kernel declaration","readable_type":"Eq\n  ((Counting.SharpPClosure.liftComputer Counting.Examples.reversePolyTime.toTM2ComputableInPolyTime).outputsFun\n      { fst := List.cons Bool.false (List.cons Bool.true List.nil),\n        snd :=\n          List.cons Bool.true\n            (List.cons Bool.false\n              (List.cons Bool.false (List.cons Bool.false (List.cons Bool.false List.nil)))) }).steps\n  (instHAdd.hAdd\n    (instHAdd.hAdd\n      (instHAdd.hAdd\n        (Counting.Examples.reversePolyTime.outputsFun (List.cons Bool.false (List.cons Bool.true List.nil))).steps\n        ((PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.BitEncoding.bits\n                PlanarHom.Complexity.BitEncoding.bits).outputsFun\n            { fst := List.cons Bool.false (List.cons Bool.true List.nil),\n              snd :=\n                List.cons Bool.true\n                  (List.cons Bool.false\n                    (List.cons Bool.false (List.cons Bool.false (List.cons Bool.false List.nil)))) }).steps)\n      ((PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.BitEncoding.bits\n              PlanarHom.Complexity.BitEncoding.bits).outputsFun\n          { fst := List.cons Bool.false (List.cons Bool.true List.nil),\n            snd :=\n              List.cons Bool.true\n                (List.cons Bool.false\n                  (List.cons Bool.false (List.cons Bool.false (List.cons Bool.false List.nil)))) }).steps)\n    32)","role":"client","source_line":175,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Clients.lean","source_sha256":"1762c35d3b69d774c874ec3e5089422639b3b30915e14a9d8775d0f82fa67245","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Clients.lean#L175","type":"@Eq.{1} Nat\n  (@StateTransition.EvalsTo.steps.{0}\n    (Turing.FinTM2.Cfg\n      (@Turing.TM2ComputableAux.tm Bool Bool\n        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n          (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n            @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n          (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n              Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n              (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))))\n    (Turing.FinTM2.step\n      (@Turing.TM2ComputableAux.tm Bool Bool\n        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n          (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n            @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n          (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n              Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n              (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))))\n    (Turing.initList\n      (@Turing.TM2ComputableAux.tm Bool Bool\n        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n          (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n            @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n          (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n              Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n              (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n      (@List.map.{0, 0} Bool\n        (Turing.FinTM2.Γ\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                  (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n          (Turing.FinTM2.k₀\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                    (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))))\n        (@Equiv.invFun.{1, 1}\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                    (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n            (Turing.FinTM2.k₀\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                      (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))))\n          Bool\n          (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                  (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))))\n        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n          (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n            (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n            (@List.cons.{0} Bool Bool.true\n              (@List.cons.{0} Bool Bool.false\n                (@List.cons.{0} Bool Bool.false\n                  (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool))))))))))\n    (@Option.map.{0, 0}\n      (List.{0}\n        (Turing.FinTM2.Γ\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                  (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n          (Turing.FinTM2.k₁\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                    (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))))))\n      (Turing.FinTM2.Cfg\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n            (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))))\n      (Turing.haltList\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n            (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))))\n      (@Option.some.{0}\n        (List.{0}\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                    (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                      (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))))))\n        (@List.map.{0, 0} Bool\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                    (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                      (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))))\n          (@Equiv.invFun.{1, 1}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                      (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (@List.reverse.{0} Bool\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                        (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))))\n            Bool\n            (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                    (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))))\n          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n            (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              (@List.reverse.{0} Bool\n                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n                    (@List.cons.{0} Bool Bool.true\n                      (@List.cons.{0} Bool Bool.false\n                        (@List.cons.{0} Bool Bool.false\n                          (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool)))))))))\n              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n                  (@List.cons.{0} Bool Bool.true\n                    (@List.cons.{0} Bool Bool.false\n                      (@List.cons.{0} Bool Bool.false\n                        (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool)))))))))))))\n    (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n      (Turing.FinTM2.Cfg\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n            (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))))\n      (Turing.FinTM2.step\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n            (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))))\n      (Turing.initList\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n            (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n        (@List.map.{0, 0} Bool\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                    (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n            (Turing.FinTM2.k₀\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                      (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))))\n          (@Equiv.invFun.{1, 1}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                      (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (@List.reverse.{0} Bool\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                        (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))))\n            Bool\n            (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                    (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))))\n          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n            (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n              (@List.cons.{0} Bool Bool.true\n                (@List.cons.{0} Bool Bool.false\n                  (@List.cons.{0} Bool Bool.false\n                    (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool))))))))))\n      (@Option.map.{0, 0}\n        (List.{0}\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                    (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                      (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))))))\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                  (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))))\n        (Turing.haltList\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                  (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))))\n        (@Option.some.{0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                      (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (@List.reverse.{0} Bool\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                        (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))))))\n          (@List.map.{0, 0} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                      (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (@List.reverse.{0} Bool\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                        (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (@List.reverse.{0} Bool\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                        (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                        @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          (@List.reverse.{0} Bool\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))))\n              Bool\n              (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                      (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n              (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (@List.reverse.{0} Bool\n                  (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n                      (@List.cons.{0} Bool Bool.true\n                        (@List.cons.{0} Bool Bool.false\n                          (@List.cons.{0} Bool Bool.false\n                            (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool)))))))))\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n                    (@List.cons.{0} Bool Bool.true\n                      (@List.cons.{0} Bool Bool.false\n                        (@List.cons.{0} Bool Bool.false\n                          (@List.cons.{0} Bool Bool.false\n                            (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool)))))))))))))\n      (@Polynomial.eval.{0} Nat Nat.instSemiring\n        (@List.length.{0} Bool\n          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n            (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n              (@List.cons.{0} Bool Bool.true\n                (@List.cons.{0} Bool Bool.false\n                  (@List.cons.{0} Bool Bool.false\n                    (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool)))))))))\n        (@Turing.TM2ComputableInPolyTime.time (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n          (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n            @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n          (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n              Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n              (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n      (@Turing.TM2ComputableInPolyTime.outputsFun (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n        (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n          @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n            (@List.reverse.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n        (@Counting.SharpPClosure.liftComputer (@List.reverse.{0} Bool)\n          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype\n            Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) (@List.reverse.{0} Bool)\n            Counting.Examples.reversePolyTime))\n        (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n          (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n          (@List.cons.{0} Bool Bool.true\n            (@List.cons.{0} Bool Bool.false\n              (@List.cons.{0} Bool Bool.false\n                (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool))))))))))\n  (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n        (@StateTransition.EvalsTo.steps.{0}\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                (@List.reverse.{0} Bool)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                  (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n          (Turing.FinTM2.step\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                (@List.reverse.{0} Bool)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                  (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n          (Turing.initList\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                (@List.reverse.{0} Bool)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                  (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))\n            (@List.map.{0, 0} Bool\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                    (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                    (@List.reverse.{0} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                      (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                      (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                      (@List.reverse.{0} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                        (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                      (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                      (@List.reverse.{0} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                        (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))\n                  (Turing.FinTM2.k₀\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                        (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                        (@List.reverse.{0} Bool)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))))\n                Bool\n                (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                    (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                    (@List.reverse.{0} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                      (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n              (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool)\n                (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool))))))\n          (@Option.map.{0, 0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                    (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                    (@List.reverse.{0} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                      (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                      (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                      (@List.reverse.{0} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                        (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))))\n            (Turing.FinTM2.Cfg\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                  (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                  (@List.reverse.{0} Bool)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                    (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n            (Turing.haltList\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                  (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                  (@List.reverse.{0} Bool)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                    (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n            (@Option.some.{0}\n              (List.{0}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                      (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                      (@List.reverse.{0} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                        (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                        (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                        (@List.reverse.{0} Bool)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))))\n              (@List.map.{0, 0} Bool\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                      (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                      (@List.reverse.{0} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                        (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                        (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                        (@List.reverse.{0} Bool)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))))\n                (@Equiv.invFun.{1, 1}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                        (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                        (@List.reverse.{0} Bool)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                          (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                          (@List.reverse.{0} Bool)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                            Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) (@List.reverse.{0} Bool)\n                            Counting.Examples.reversePolyTime)))))\n                  Bool\n                  (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                      (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                      (@List.reverse.{0} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                        (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n                (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool)\n                  (@List.reverse.{0} Bool\n                    (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool))))))))\n          (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n            (Turing.FinTM2.Cfg\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                  (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                  (@List.reverse.{0} Bool)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                    (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n            (Turing.FinTM2.step\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                  (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                  (@List.reverse.{0} Bool)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                    (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n            (Turing.initList\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                  (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                  (@List.reverse.{0} Bool)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                    (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))\n              (@List.map.{0, 0} Bool\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                      (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                      (@List.reverse.{0} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                        (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))\n                  (Turing.FinTM2.k₀\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                        (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                        (@List.reverse.{0} Bool)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))))\n                (@Equiv.invFun.{1, 1}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                        (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                        (@List.reverse.{0} Bool)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))\n                    (Turing.FinTM2.k₀\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                          (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                          (@List.reverse.{0} Bool)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                            Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) (@List.reverse.{0} Bool)\n                            Counting.Examples.reversePolyTime)))))\n                  Bool\n                  (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                      (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                      (@List.reverse.{0} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                        (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n                (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool)\n                  (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool))))))\n            (@Option.map.{0, 0}\n              (List.{0}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                      (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                      (@List.reverse.{0} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                        (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                        (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                        (@List.reverse.{0} Bool)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))))\n              (Turing.FinTM2.Cfg\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                    (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                    (@List.reverse.{0} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                      (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n              (Turing.haltList\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                    (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                    (@List.reverse.{0} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                      (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n              (@Option.some.{0}\n                (List.{0}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                        (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                        (@List.reverse.{0} Bool)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                          (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                          (@List.reverse.{0} Bool)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                            Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) (@List.reverse.{0} Bool)\n                            Counting.Examples.reversePolyTime))))))\n                (@List.map.{0, 0} Bool\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                        (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                        (@List.reverse.{0} Bool)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                          (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                          (@List.reverse.{0} Bool)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                            Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) (@List.reverse.{0} Bool)\n                            Counting.Examples.reversePolyTime)))))\n                  (@Equiv.invFun.{1, 1}\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                          (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                          (@List.reverse.{0} Bool)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                            Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) (@List.reverse.{0} Bool)\n                            Counting.Examples.reversePolyTime)))\n                      (Turing.FinTM2.k₁\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool\n                              (Computability.encodingList Bool))\n                            (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool\n                              (Computability.encodingList Bool))\n                            (@List.reverse.{0} Bool)\n                            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                              Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) (@List.reverse.{0} Bool)\n                              Counting.Examples.reversePolyTime)))))\n                    Bool\n                    (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                        (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                        (@List.reverse.{0} Bool)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime))))\n                  (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool)\n                    (@List.reverse.{0} Bool\n                      (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool))))))))\n            (@Polynomial.eval.{0} Nat Nat.instSemiring\n              (@List.length.{0} Bool\n                (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool)\n                  (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))))\n              (@Turing.TM2ComputableInPolyTime.time (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n                (@List.reverse.{0} Bool)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                  (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)))\n            (@Turing.TM2ComputableInPolyTime.outputsFun (List.{0} Bool) (List.{0} Bool) Bool Bool\n              (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n              (@Computability.Encoding.encode.{0, 0} (List.{0} Bool) Bool (Computability.encodingList Bool))\n              (@List.reverse.{0} Bool)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                (@List.reverse.{0} Bool) Counting.Examples.reversePolyTime)\n              (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool))))))\n        (@StateTransition.EvalsTo.steps.{0}\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits)\n                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                  PlanarHom.Complexity.BitEncoding.bits))))\n          (Turing.FinTM2.step\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits)\n                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                  PlanarHom.Complexity.BitEncoding.bits))))\n          (Turing.initList\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits)\n                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                  PlanarHom.Complexity.BitEncoding.bits)))\n            (@List.map.{0, 0} Bool\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                      PlanarHom.Complexity.BitEncoding.bits)))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits)))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits)))\n                  (Turing.FinTM2.k₀\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits)))))\n                Bool\n                (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                      PlanarHom.Complexity.BitEncoding.bits))))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n                  (@List.cons.{0} Bool Bool.true\n                    (@List.cons.{0} Bool Bool.false\n                      (@List.cons.{0} Bool Bool.false\n                        (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool))))))))))\n          (@Option.map.{0, 0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                      PlanarHom.Complexity.BitEncoding.bits)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits))))))\n            (Turing.FinTM2.Cfg\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits)\n                  (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                    PlanarHom.Complexity.BitEncoding.bits))))\n            (Turing.haltList\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits)\n                  (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                    PlanarHom.Complexity.BitEncoding.bits))))\n            (@Option.some.{0}\n              (List.{0}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits))))))\n              (@List.map.{0, 0} Bool\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits)))))\n                (@Equiv.invFun.{1, 1}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                            PlanarHom.Complexity.BitEncoding.bits)))))\n                  Bool\n                  (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits))))\n                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits\n                  (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n                      (@List.cons.{0} Bool Bool.true\n                        (@List.cons.{0} Bool Bool.false\n                          (@List.cons.{0} Bool Bool.false\n                            (@List.cons.{0} Bool Bool.false\n                              (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool))))))))))))\n          (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n            (Turing.FinTM2.Cfg\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits)\n                  (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                    PlanarHom.Complexity.BitEncoding.bits))))\n            (Turing.FinTM2.step\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits)\n                  (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                    PlanarHom.Complexity.BitEncoding.bits))))\n            (Turing.initList\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits)\n                  (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                    PlanarHom.Complexity.BitEncoding.bits)))\n              (@List.map.{0, 0} Bool\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits)))\n                  (Turing.FinTM2.k₀\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits)))))\n                (@Equiv.invFun.{1, 1}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits)))\n                    (Turing.FinTM2.k₀\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                            PlanarHom.Complexity.BitEncoding.bits)))))\n                  Bool\n                  (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits))))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                  (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n                    (@List.cons.{0} Bool Bool.true\n                      (@List.cons.{0} Bool Bool.false\n                        (@List.cons.{0} Bool Bool.false\n                          (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool))))))))))\n            (@Option.map.{0, 0}\n              (List.{0}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits))))))\n              (Turing.FinTM2.Cfg\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                      PlanarHom.Complexity.BitEncoding.bits))))\n              (Turing.haltList\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                      PlanarHom.Complexity.BitEncoding.bits))))\n              (@Option.some.{0}\n                (List.{0}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                            PlanarHom.Complexity.BitEncoding.bits))))))\n                (@List.map.{0, 0} Bool\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                            PlanarHom.Complexity.BitEncoding.bits)))))\n                  (@Equiv.invFun.{1, 1}\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                            PlanarHom.Complexity.BitEncoding.bits)))\n                      (Turing.FinTM2.k₁\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                              PlanarHom.Complexity.BitEncoding.bits)))))\n                    Bool\n                    (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits))))\n                  (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits\n                    (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n                        (@List.cons.{0} Bool Bool.true\n                          (@List.cons.{0} Bool Bool.false\n                            (@List.cons.{0} Bool Bool.false\n                              (@List.cons.{0} Bool Bool.false\n                                (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool))))))))))))\n            (@Polynomial.eval.{0} Nat Nat.instSemiring\n              (@List.length.{0} Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                  (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n                    (@List.cons.{0} Bool Bool.true\n                      (@List.cons.{0} Bool Bool.false\n                        (@List.cons.{0} Bool Bool.false\n                          (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool)))))))))\n              (@Turing.TM2ComputableInPolyTime.time (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                PlanarHom.Complexity.Bits Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits)\n                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                  PlanarHom.Complexity.BitEncoding.bits)))\n            (@Turing.TM2ComputableInPolyTime.outputsFun\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits)\n              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n              (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n                (@List.cons.{0} Bool Bool.true\n                  (@List.cons.{0} Bool Bool.false\n                    (@List.cons.{0} Bool Bool.false\n                      (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool)))))))))))\n      (@StateTransition.EvalsTo.steps.{0}\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits)\n              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                PlanarHom.Complexity.BitEncoding.bits))))\n        (Turing.FinTM2.step\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits)\n              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                PlanarHom.Complexity.BitEncoding.bits))))\n        (Turing.initList\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits)\n              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)))\n          (@List.map.{0, 0} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits)\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                    PlanarHom.Complexity.BitEncoding.bits)))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                      PlanarHom.Complexity.BitEncoding.bits)))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                      PlanarHom.Complexity.BitEncoding.bits)))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits)))))\n              Bool\n              (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits)\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                    PlanarHom.Complexity.BitEncoding.bits))))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n              (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n                (@List.cons.{0} Bool Bool.true\n                  (@List.cons.{0} Bool Bool.false\n                    (@List.cons.{0} Bool Bool.false\n                      (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool))))))))))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits)\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                    PlanarHom.Complexity.BitEncoding.bits)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                      PlanarHom.Complexity.BitEncoding.bits))))))\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits)\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                  PlanarHom.Complexity.BitEncoding.bits))))\n          (Turing.haltList\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits)\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                  PlanarHom.Complexity.BitEncoding.bits))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                      PlanarHom.Complexity.BitEncoding.bits)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits))))))\n            (@List.map.{0, 0} Bool\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                      PlanarHom.Complexity.BitEncoding.bits)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits)))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits)))))\n                Bool\n                (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                      PlanarHom.Complexity.BitEncoding.bits))))\n              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n                    (@List.cons.{0} Bool Bool.true\n                      (@List.cons.{0} Bool Bool.false\n                        (@List.cons.{0} Bool Bool.false\n                          (@List.cons.{0} Bool Bool.false\n                            (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool))))))))))))\n        (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits)\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                  PlanarHom.Complexity.BitEncoding.bits))))\n          (Turing.FinTM2.step\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits)\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                  PlanarHom.Complexity.BitEncoding.bits))))\n          (Turing.initList\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits)\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                  PlanarHom.Complexity.BitEncoding.bits)))\n            (@List.map.{0, 0} Bool\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                      PlanarHom.Complexity.BitEncoding.bits)))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits)))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits)))\n                  (Turing.FinTM2.k₀\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits)))))\n                Bool\n                (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                      PlanarHom.Complexity.BitEncoding.bits))))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n                  (@List.cons.{0} Bool Bool.true\n                    (@List.cons.{0} Bool Bool.false\n                      (@List.cons.{0} Bool Bool.false\n                        (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool))))))))))\n          (@Option.map.{0, 0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                      PlanarHom.Complexity.BitEncoding.bits)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits))))))\n            (Turing.FinTM2.Cfg\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits)\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                    PlanarHom.Complexity.BitEncoding.bits))))\n            (Turing.haltList\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits)\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                    PlanarHom.Complexity.BitEncoding.bits))))\n            (@Option.some.{0}\n              (List.{0}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits))))))\n              (@List.map.{0, 0} Bool\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits)))))\n                (@Equiv.invFun.{1, 1}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                            PlanarHom.Complexity.BitEncoding.bits)))))\n                  Bool\n                  (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits))))\n                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n                      (@List.cons.{0} Bool Bool.true\n                        (@List.cons.{0} Bool Bool.false\n                          (@List.cons.{0} Bool Bool.false\n                            (@List.cons.{0} Bool Bool.false\n                              (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool))))))))))))\n          (@Polynomial.eval.{0} Nat Nat.instSemiring\n            (@List.length.{0} Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n                  (@List.cons.{0} Bool Bool.true\n                    (@List.cons.{0} Bool Bool.false\n                      (@List.cons.{0} Bool Bool.false\n                        (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool)))))))))\n            (@Turing.TM2ComputableInPolyTime.time (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              PlanarHom.Complexity.Bits Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits)\n              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)))\n          (@Turing.TM2ComputableInPolyTime.outputsFun (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            PlanarHom.Complexity.Bits Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits)\n            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n              PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n            (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.true (@List.nil.{0} Bool)))\n              (@List.cons.{0} Bool Bool.true\n                (@List.cons.{0} Bool Bool.false\n                  (@List.cons.{0} Bool Bool.false\n                    (@List.cons.{0} Bool Bool.false (@List.cons.{0} Bool Bool.false (@List.nil.{0} Bool)))))))))))\n    (@OfNat.ofNat.{0} Nat (nat_lit 32) (instOfNatNat (nat_lit 32))))"},{"category":"tools","display_name":"Counting.SharpPClosure.Clients.zeroBit_count_one","family":"sharpp","import":"Counting.SharpPClosure.Clients","kind":"theorem","module":"Counting.SharpPClosure.Clients","name":"Counting.SharpPClosure.Clients.zeroBit_count_one","name_semantics":"actual named kernel declaration","readable_type":"∀ (x : PlanarHom.Complexity.Bits),\n  Eq\n    (Counting.Foundation.witnessCount 0 fun bits =>\n      Counting.SharpPClosure.Clients.zeroBitTransport.accept { fst := x, snd := bits })\n    1","role":"client","source_line":158,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Clients.lean","source_sha256":"1762c35d3b69d774c874ec3e5089422639b3b30915e14a9d8775d0f82fa67245","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Clients.lean#L158","type":"∀ (x : PlanarHom.Complexity.Bits),\n  @Eq.{1} Nat\n    (Counting.Foundation.witnessCount (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n      fun (bits : List.{0} Bool) =>\n      @Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool)\n        (fun (x : PlanarHom.Complexity.Bits) => @OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        Counting.SharpPClosure.Clients.zeroBitTransport (@Prod.mk.{0, 0} (List.{0} Bool) (List.{0} Bool) x bits))\n    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))"},{"category":"tools","display_name":"Counting.SharpPClosure.fp_padVerifier","family":"sharpp","import":"Counting.SharpPClosure.Machines","kind":"theorem","module":"Counting.SharpPClosure.Machines","name":"Counting.SharpPClosure.fp_padVerifier","name_semantics":"actual named kernel declaration","readable_type":"∀ (q : Polynomial Nat) (V : Prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits → Bool),\n  PlanarHom.Complexity.FP (PlanarHom.Complexity.BitEncoding.bits.prod PlanarHom.Complexity.BitEncoding.bits)\n      PlanarHom.Complexity.BitEncoding.bool V →\n    PlanarHom.Complexity.FP (PlanarHom.Complexity.BitEncoding.bits.prod PlanarHom.Complexity.BitEncoding.bits)\n      PlanarHom.Complexity.BitEncoding.bool (Counting.SharpPClosure.padVerifier q V)","role":"public","source_line":64,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Machines.lean","source_sha256":"8f74ac127372cd14bca75be8962e2479af8391a74f4dcd3e31e1b3b59dc700d1","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Machines.lean#L64","type":"∀ (q : @Polynomial.{0} Nat Nat.instSemiring)\n  (V : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits → Bool)\n  (hV :\n    @PlanarHom.Complexity.FP (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n      PlanarHom.Complexity.BitEncoding.bool V),\n  @PlanarHom.Complexity.FP (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n    PlanarHom.Complexity.BitEncoding.bool (Counting.SharpPClosure.padVerifier q V)"},{"category":"tools","display_name":"Counting.SharpPClosure.ignoredSuffix_inflation","family":"sharpp","import":"Counting.SharpPClosure.Basic","kind":"theorem","module":"Counting.SharpPClosure.Basic","name":"Counting.SharpPClosure.ignoredSuffix_inflation","name_semantics":"actual named kernel declaration","readable_type":"∀ (n N : Nat),\n  instLENat.le n N →\n    ∀ (accept : List Bool → Bool),\n      Eq (Counting.Foundation.witnessCount N fun w => accept (List.take n w))\n        (instHMul.hMul (Counting.Foundation.witnessCount n accept) (instHPow.hPow 2 (instHSub.hSub N n)))","role":"public","source_line":69,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Basic.lean","source_sha256":"b5344fa91792f24c177f6dd9dc23024f7cc810d4d892c2c678ce3977f7ff96e2","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Basic.lean#L69","type":"∀ (n N : Nat) (h : @LE.le.{0} Nat instLENat n N) (accept : List.{0} Bool → Bool),\n  @Eq.{1} Nat (Counting.Foundation.witnessCount N fun (w : List.{0} Bool) => accept (@List.take.{0} Bool n w))\n    (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) (Counting.Foundation.witnessCount n accept)\n      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) N n)))"},{"category":"tools","display_name":"Counting.SharpPClosure.liftComputer","family":"sharpp","import":"Counting.SharpPClosure.Machines","kind":"definition","module":"Counting.SharpPClosure.Machines","name":"Counting.SharpPClosure.liftComputer","name_semantics":"actual named kernel declaration","readable_type":"{R : PlanarHom.Complexity.Bits → PlanarHom.Complexity.Bits} →\n  Turing.TM2ComputableInPolyTime PlanarHom.Complexity.BitEncoding.bits.encode\n      PlanarHom.Complexity.BitEncoding.bits.encode R →\n    Turing.TM2ComputableInPolyTime\n      (PlanarHom.Complexity.BitEncoding.bits.prod PlanarHom.Complexity.BitEncoding.bits).encode\n      (PlanarHom.Complexity.BitEncoding.bits.prod PlanarHom.Complexity.BitEncoding.bits).encode fun p =>\n      { fst := R p.fst, snd := p.snd }","role":"public","source_line":92,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Machines.lean","source_sha256":"8f74ac127372cd14bca75be8962e2479af8391a74f4dcd3e31e1b3b59dc700d1","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Machines.lean#L92","type":"{R : PlanarHom.Complexity.Bits → PlanarHom.Complexity.Bits} →\n  (hR :\n      @Turing.TM2ComputableInPolyTime PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits Bool Bool\n        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits)\n        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits) R) →\n    @Turing.TM2ComputableInPolyTime (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n      (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n      fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n        (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p)"},{"category":"tools","display_name":"Counting.SharpPClosure.liftComputer_steps","family":"sharpp","import":"Counting.SharpPClosure.Machines","kind":"theorem","module":"Counting.SharpPClosure.Machines","name":"Counting.SharpPClosure.liftComputer_steps","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : PlanarHom.Complexity.Bits → PlanarHom.Complexity.Bits}\n  (hR :\n    Turing.TM2ComputableInPolyTime PlanarHom.Complexity.BitEncoding.bits.encode\n      PlanarHom.Complexity.BitEncoding.bits.encode R)\n  (p : Prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits),\n  Eq ((Counting.SharpPClosure.liftComputer hR).outputsFun p).steps\n    (instHAdd.hAdd\n      (instHAdd.hAdd\n        (instHAdd.hAdd\n          (instHAdd.hAdd\n            ((PlanarHom.MachineComposition.composeComputers\n                    (PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                    hR).outputsFun\n                p).steps\n            ((PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.BitEncoding.bits\n                    PlanarHom.Complexity.BitEncoding.bits).outputsFun\n                p).steps)\n          (instHMul.hMul 2\n            (List.length\n              ((PlanarHom.Complexity.BitEncoding.bits.prod PlanarHom.Complexity.BitEncoding.bits).encode p))))\n        (instHMul.hMul 3 (List.length (R p.fst))))\n      6)","role":"public","source_line":104,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Machines.lean","source_sha256":"8f74ac127372cd14bca75be8962e2479af8391a74f4dcd3e31e1b3b59dc700d1","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Machines.lean#L104","type":"∀ {R : PlanarHom.Complexity.Bits → PlanarHom.Complexity.Bits}\n  (hR :\n    @Turing.TM2ComputableInPolyTime PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits Bool Bool\n      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits)\n      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits) R)\n  (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits),\n  @Eq.{1} Nat\n    (@StateTransition.EvalsTo.steps.{0}\n      (Turing.FinTM2.Cfg\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n            (@Counting.SharpPClosure.liftComputer R hR))))\n      (Turing.FinTM2.step\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n            (@Counting.SharpPClosure.liftComputer R hR))))\n      (Turing.initList\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n            (@Counting.SharpPClosure.liftComputer R hR)))\n        (@List.map.{0, 0} Bool\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Counting.SharpPClosure.liftComputer R hR)))\n            (Turing.FinTM2.k₀\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer R hR)))))\n          (@Equiv.invFun.{1, 1}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer R hR)))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer R hR)))))\n            Bool\n            (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Counting.SharpPClosure.liftComputer R hR))))\n          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n            p)))\n      (@Option.map.{0, 0}\n        (List.{0}\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Counting.SharpPClosure.liftComputer R hR)))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer R hR))))))\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Counting.SharpPClosure.liftComputer R hR))))\n        (Turing.haltList\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Counting.SharpPClosure.liftComputer R hR))))\n        (@Option.some.{0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer R hR)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer R hR))))))\n          (@List.map.{0, 0} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer R hR)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer R hR)))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer R hR)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                        @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Counting.SharpPClosure.liftComputer R hR)))))\n              Bool\n              (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer R hR))))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n              (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))))))\n      (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Counting.SharpPClosure.liftComputer R hR))))\n        (Turing.FinTM2.step\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Counting.SharpPClosure.liftComputer R hR))))\n        (Turing.initList\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Counting.SharpPClosure.liftComputer R hR)))\n          (@List.map.{0, 0} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer R hR)))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer R hR)))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer R hR)))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                        @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Counting.SharpPClosure.liftComputer R hR)))))\n              Bool\n              (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer R hR))))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n              p)))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer R hR)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer R hR))))))\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Counting.SharpPClosure.liftComputer R hR))))\n          (Turing.haltList\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Counting.SharpPClosure.liftComputer R hR))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer R hR)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                        @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Counting.SharpPClosure.liftComputer R hR))))))\n            (@List.map.{0, 0} Bool\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer R hR)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                        @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Counting.SharpPClosure.liftComputer R hR)))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                        @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Counting.SharpPClosure.liftComputer R hR)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                          @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Counting.SharpPClosure.liftComputer R hR)))))\n                Bool\n                (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer R hR))))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))))))\n        (@Polynomial.eval.{0} Nat Nat.instSemiring\n          (@List.length.{0} Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n              p))\n          (@Turing.TM2ComputableInPolyTime.time (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n            (@Counting.SharpPClosure.liftComputer R hR)))\n        (@Turing.TM2ComputableInPolyTime.outputsFun (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n          (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n            @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n          (@Counting.SharpPClosure.liftComputer R hR) p)))\n    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n          (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n            (@StateTransition.EvalsTo.steps.{0}\n              (Turing.FinTM2.Cfg\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                      (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                    (@PlanarHom.MachineComposition.composeComputers\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits Bool Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                      (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      hR))))\n              (Turing.FinTM2.step\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                      (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                    (@PlanarHom.MachineComposition.composeComputers\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits Bool Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                      (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      hR))))\n              (Turing.initList\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                      (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                    (@PlanarHom.MachineComposition.composeComputers\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits Bool Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                      (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      hR)))\n                (@List.map.{0, 0} Bool\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        (@PlanarHom.MachineComposition.composeComputers\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits Bool Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                          (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          hR)))\n                    (Turing.FinTM2.k₀\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          (@PlanarHom.MachineComposition.composeComputers\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits Bool Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                            (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            hR)))))\n                  (@Equiv.invFun.{1, 1}\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          (@PlanarHom.MachineComposition.composeComputers\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits Bool Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                            (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            hR)))\n                      (Turing.FinTM2.k₀\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                            (@PlanarHom.MachineComposition.composeComputers\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits Bool Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                              (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                              hR)))))\n                    Bool\n                    (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        (@PlanarHom.MachineComposition.composeComputers\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits Bool Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                          (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          hR))))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                    p)))\n              (@Option.map.{0, 0}\n                (List.{0}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        (@PlanarHom.MachineComposition.composeComputers\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits Bool Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                          (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          hR)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          (@PlanarHom.MachineComposition.composeComputers\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits Bool Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                            (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            hR))))))\n                (Turing.FinTM2.Cfg\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                      (@PlanarHom.MachineComposition.composeComputers\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits Bool Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                        (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        hR))))\n                (Turing.haltList\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                      (@PlanarHom.MachineComposition.composeComputers\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits Bool Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                        (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        hR))))\n                (@Option.some.{0}\n                  (List.{0}\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          (@PlanarHom.MachineComposition.composeComputers\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits Bool Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                            (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            hR)))\n                      (Turing.FinTM2.k₁\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                            (@PlanarHom.MachineComposition.composeComputers\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits Bool Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                              (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                              hR))))))\n                  (@List.map.{0, 0} Bool\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          (@PlanarHom.MachineComposition.composeComputers\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits Bool Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                            (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            hR)))\n                      (Turing.FinTM2.k₁\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                            (@PlanarHom.MachineComposition.composeComputers\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits Bool Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                              (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                              hR)))))\n                    (@Equiv.invFun.{1, 1}\n                      (Turing.FinTM2.Γ\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                            (@PlanarHom.MachineComposition.composeComputers\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits Bool Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                              (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                              hR)))\n                        (Turing.FinTM2.k₁\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@Function.comp.{1, 1, 1}\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                              (@PlanarHom.MachineComposition.composeComputers\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits Bool Bool Bool\n                                (@PlanarHom.Complexity.BitEncoding.encode\n                                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                    PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                    PlanarHom.Complexity.BitEncoding.bits))\n                                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.BitEncoding.bits)\n                                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.BitEncoding.bits)\n                                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                                (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                                hR)))))\n                      Bool\n                      (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          (@PlanarHom.MachineComposition.composeComputers\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits Bool Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                            (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            hR))))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits\n                      (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) p)))))\n              (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n                (Turing.FinTM2.Cfg\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                      (@PlanarHom.MachineComposition.composeComputers\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits Bool Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                        (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        hR))))\n                (Turing.FinTM2.step\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                      (@PlanarHom.MachineComposition.composeComputers\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits Bool Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                        (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        hR))))\n                (Turing.initList\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                      (@PlanarHom.MachineComposition.composeComputers\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits Bool Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                        (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        hR)))\n                  (@List.map.{0, 0} Bool\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          (@PlanarHom.MachineComposition.composeComputers\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits Bool Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                            (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            hR)))\n                      (Turing.FinTM2.k₀\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                            (@PlanarHom.MachineComposition.composeComputers\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits Bool Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                              (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                              hR)))))\n                    (@Equiv.invFun.{1, 1}\n                      (Turing.FinTM2.Γ\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                            (@PlanarHom.MachineComposition.composeComputers\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits Bool Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                              (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                              hR)))\n                        (Turing.FinTM2.k₀\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@Function.comp.{1, 1, 1}\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                              (@PlanarHom.MachineComposition.composeComputers\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits Bool Bool Bool\n                                (@PlanarHom.Complexity.BitEncoding.encode\n                                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                    PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                    PlanarHom.Complexity.BitEncoding.bits))\n                                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.BitEncoding.bits)\n                                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.BitEncoding.bits)\n                                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                                (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                                hR)))))\n                      Bool\n                      (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          (@PlanarHom.MachineComposition.composeComputers\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits Bool Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                            (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            hR))))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                      p)))\n                (@Option.map.{0, 0}\n                  (List.{0}\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          (@PlanarHom.MachineComposition.composeComputers\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits Bool Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                            (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            hR)))\n                      (Turing.FinTM2.k₁\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                            (@PlanarHom.MachineComposition.composeComputers\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits Bool Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                              (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                              hR))))))\n                  (Turing.FinTM2.Cfg\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        (@PlanarHom.MachineComposition.composeComputers\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits Bool Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                          (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          hR))))\n                  (Turing.haltList\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        (@PlanarHom.MachineComposition.composeComputers\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits Bool Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                          (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          hR))))\n                  (@Option.some.{0}\n                    (List.{0}\n                      (Turing.FinTM2.Γ\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                            (@PlanarHom.MachineComposition.composeComputers\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits Bool Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                              (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                              hR)))\n                        (Turing.FinTM2.k₁\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@Function.comp.{1, 1, 1}\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                              (@PlanarHom.MachineComposition.composeComputers\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits Bool Bool Bool\n                                (@PlanarHom.Complexity.BitEncoding.encode\n                                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                    PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                    PlanarHom.Complexity.BitEncoding.bits))\n                                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.BitEncoding.bits)\n                                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.BitEncoding.bits)\n                                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                                (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                                hR))))))\n                    (@List.map.{0, 0} Bool\n                      (Turing.FinTM2.Γ\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                            (@PlanarHom.MachineComposition.composeComputers\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits Bool Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                              (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                              hR)))\n                        (Turing.FinTM2.k₁\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@Function.comp.{1, 1, 1}\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                              (@PlanarHom.MachineComposition.composeComputers\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits Bool Bool Bool\n                                (@PlanarHom.Complexity.BitEncoding.encode\n                                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                    PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                    PlanarHom.Complexity.BitEncoding.bits))\n                                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.BitEncoding.bits)\n                                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.BitEncoding.bits)\n                                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                                (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                                hR)))))\n                      (@Equiv.invFun.{1, 1}\n                        (Turing.FinTM2.Γ\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@Function.comp.{1, 1, 1}\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                              (@PlanarHom.MachineComposition.composeComputers\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits Bool Bool Bool\n                                (@PlanarHom.Complexity.BitEncoding.encode\n                                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                    PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                    PlanarHom.Complexity.BitEncoding.bits))\n                                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.BitEncoding.bits)\n                                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.BitEncoding.bits)\n                                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                                (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                                hR)))\n                          (Turing.FinTM2.k₁\n                            (@Turing.TM2ComputableAux.tm Bool Bool\n                              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                PlanarHom.Complexity.Bits Bool Bool\n                                (@PlanarHom.Complexity.BitEncoding.encode\n                                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                    PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                    PlanarHom.Complexity.BitEncoding.bits))\n                                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.BitEncoding.bits)\n                                (@Function.comp.{1, 1, 1}\n                                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                                  (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                                (@PlanarHom.MachineComposition.composeComputers\n                                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits Bool Bool Bool\n                                  (@PlanarHom.Complexity.BitEncoding.encode\n                                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                      PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                      PlanarHom.Complexity.BitEncoding.bits))\n                                  (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                    PlanarHom.Complexity.BitEncoding.bits)\n                                  (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                    PlanarHom.Complexity.BitEncoding.bits)\n                                  (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                                  (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer\n                                    PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                                  hR)))))\n                        Bool\n                        (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                            (@PlanarHom.MachineComposition.composeComputers\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits Bool Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                              (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                              hR))))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits\n                        (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                          (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) p)))))\n                (@Polynomial.eval.{0} Nat Nat.instSemiring\n                  (@List.length.{0} Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                      p))\n                  (@Turing.TM2ComputableInPolyTime.time\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                      (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                    (@PlanarHom.MachineComposition.composeComputers\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits Bool Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                      (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      hR)))\n                (@Turing.TM2ComputableInPolyTime.outputsFun\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits)\n                  (@Function.comp.{1, 1, 1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits R\n                    (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                  (@PlanarHom.MachineComposition.composeComputers\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.Bits Bool Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) R\n                    (@PlanarHom.Complexity.PairProjectionMachines.fstEncodingComputer PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    hR)\n                  p)))\n            (@StateTransition.EvalsTo.steps.{0}\n              (Turing.FinTM2.Cfg\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                      PlanarHom.Complexity.BitEncoding.bits))))\n              (Turing.FinTM2.step\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                      PlanarHom.Complexity.BitEncoding.bits))))\n              (Turing.initList\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                      PlanarHom.Complexity.BitEncoding.bits)))\n                (@List.map.{0, 0} Bool\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits)))\n                    (Turing.FinTM2.k₀\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                            PlanarHom.Complexity.BitEncoding.bits)))))\n                  (@Equiv.invFun.{1, 1}\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                            PlanarHom.Complexity.BitEncoding.bits)))\n                      (Turing.FinTM2.k₀\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                              PlanarHom.Complexity.BitEncoding.bits)))))\n                    Bool\n                    (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits))))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                    p)))\n              (@Option.map.{0, 0}\n                (List.{0}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                            PlanarHom.Complexity.BitEncoding.bits))))))\n                (Turing.FinTM2.Cfg\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits))))\n                (Turing.haltList\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits))))\n                (@Option.some.{0}\n                  (List.{0}\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                            PlanarHom.Complexity.BitEncoding.bits)))\n                      (Turing.FinTM2.k₁\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                              PlanarHom.Complexity.BitEncoding.bits))))))\n                  (@List.map.{0, 0} Bool\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                            PlanarHom.Complexity.BitEncoding.bits)))\n                      (Turing.FinTM2.k₁\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                              PlanarHom.Complexity.BitEncoding.bits)))))\n                    (@Equiv.invFun.{1, 1}\n                      (Turing.FinTM2.Γ\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                              PlanarHom.Complexity.BitEncoding.bits)))\n                        (Turing.FinTM2.k₁\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)))))\n                      Bool\n                      (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                            PlanarHom.Complexity.BitEncoding.bits))))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p)))))\n              (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n                (Turing.FinTM2.Cfg\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits))))\n                (Turing.FinTM2.step\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits))))\n                (Turing.initList\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                      Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                        PlanarHom.Complexity.BitEncoding.bits)))\n                  (@List.map.{0, 0} Bool\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                            PlanarHom.Complexity.BitEncoding.bits)))\n                      (Turing.FinTM2.k₀\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                              PlanarHom.Complexity.BitEncoding.bits)))))\n                    (@Equiv.invFun.{1, 1}\n                      (Turing.FinTM2.Γ\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                              PlanarHom.Complexity.BitEncoding.bits)))\n                        (Turing.FinTM2.k₀\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)))))\n                      Bool\n                      (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                            PlanarHom.Complexity.BitEncoding.bits))))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                      p)))\n                (@Option.map.{0, 0}\n                  (List.{0}\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                          Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits)\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                            PlanarHom.Complexity.BitEncoding.bits)))\n                      (Turing.FinTM2.k₁\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                              PlanarHom.Complexity.BitEncoding.bits))))))\n                  (Turing.FinTM2.Cfg\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits))))\n                  (Turing.haltList\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                        Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits)\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                          PlanarHom.Complexity.BitEncoding.bits))))\n                  (@Option.some.{0}\n                    (List.{0}\n                      (Turing.FinTM2.Γ\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                              PlanarHom.Complexity.BitEncoding.bits)))\n                        (Turing.FinTM2.k₁\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))))))\n                    (@List.map.{0, 0} Bool\n                      (Turing.FinTM2.Γ\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                              PlanarHom.Complexity.BitEncoding.bits)))\n                        (Turing.FinTM2.k₁\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)))))\n                      (@Equiv.invFun.{1, 1}\n                        (Turing.FinTM2.Γ\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              PlanarHom.Complexity.Bits Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits)\n                              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)))\n                          (Turing.FinTM2.k₁\n                            (@Turing.TM2ComputableAux.tm Bool Bool\n                              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                PlanarHom.Complexity.Bits Bool Bool\n                                (@PlanarHom.Complexity.BitEncoding.encode\n                                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                    PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                    PlanarHom.Complexity.BitEncoding.bits))\n                                (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.BitEncoding.bits)\n                                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)))))\n                        Bool\n                        (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits\n                            Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits)\n                            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                              PlanarHom.Complexity.BitEncoding.bits))))\n                      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p)))))\n                (@Polynomial.eval.{0} Nat Nat.instSemiring\n                  (@List.length.{0} Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                      p))\n                  (@Turing.TM2ComputableInPolyTime.time\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool\n                    Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                      PlanarHom.Complexity.BitEncoding.bits)))\n                (@Turing.TM2ComputableInPolyTime.outputsFun\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) PlanarHom.Complexity.Bits Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits)\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.PairProjectionMachines.sndEncodingComputer PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                    PlanarHom.Complexity.BitEncoding.bits)\n                  p))))\n          (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)\n            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n            (@List.length.{0} Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                p))))\n        (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)\n          (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n          (@List.length.{0} Bool (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p)))))\n      (@OfNat.ofNat.{0} Nat (nat_lit 6) (instOfNatNat (nat_lit 6))))"},{"category":"tools","display_name":"Counting.SharpPClosure.liftComputer_time_bound","family":"sharpp","import":"Counting.SharpPClosure.Machines","kind":"theorem","module":"Counting.SharpPClosure.Machines","name":"Counting.SharpPClosure.liftComputer_time_bound","name_semantics":"actual named kernel declaration","readable_type":"∀ {R : PlanarHom.Complexity.Bits → PlanarHom.Complexity.Bits}\n  (hR :\n    Turing.TM2ComputableInPolyTime PlanarHom.Complexity.BitEncoding.bits.encode\n      PlanarHom.Complexity.BitEncoding.bits.encode R)\n  (p : Prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits),\n  instLENat.le ((Counting.SharpPClosure.liftComputer hR).outputsFun p).steps\n    (Polynomial.eval\n      (List.length ((PlanarHom.Complexity.BitEncoding.bits.prod PlanarHom.Complexity.BitEncoding.bits).encode p))\n      (Counting.SharpPClosure.liftComputer hR).time)","role":"public","source_line":116,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Machines.lean","source_sha256":"8f74ac127372cd14bca75be8962e2479af8391a74f4dcd3e31e1b3b59dc700d1","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Machines.lean#L116","type":"∀ {R : PlanarHom.Complexity.Bits → PlanarHom.Complexity.Bits}\n  (hR :\n    @Turing.TM2ComputableInPolyTime PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits Bool Bool\n      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits)\n      (@PlanarHom.Complexity.BitEncoding.encode PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits) R)\n  (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits),\n  @LE.le.{0} Nat instLENat\n    (@StateTransition.EvalsTo.steps.{0}\n      (Turing.FinTM2.Cfg\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n            (@Counting.SharpPClosure.liftComputer R hR))))\n      (Turing.FinTM2.step\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n            (@Counting.SharpPClosure.liftComputer R hR))))\n      (Turing.initList\n        (@Turing.TM2ComputableAux.tm Bool Bool\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n            (@Counting.SharpPClosure.liftComputer R hR)))\n        (@List.map.{0, 0} Bool\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Counting.SharpPClosure.liftComputer R hR)))\n            (Turing.FinTM2.k₀\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer R hR)))))\n          (@Equiv.invFun.{1, 1}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer R hR)))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer R hR)))))\n            Bool\n            (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Counting.SharpPClosure.liftComputer R hR))))\n          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n            p)))\n      (@Option.map.{0, 0}\n        (List.{0}\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Counting.SharpPClosure.liftComputer R hR)))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer R hR))))))\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Counting.SharpPClosure.liftComputer R hR))))\n        (Turing.haltList\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Counting.SharpPClosure.liftComputer R hR))))\n        (@Option.some.{0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer R hR)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer R hR))))))\n          (@List.map.{0, 0} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer R hR)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer R hR)))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer R hR)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                        @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Counting.SharpPClosure.liftComputer R hR)))))\n              Bool\n              (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer R hR))))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n              (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))))))\n      (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Counting.SharpPClosure.liftComputer R hR))))\n        (Turing.FinTM2.step\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Counting.SharpPClosure.liftComputer R hR))))\n        (Turing.initList\n          (@Turing.TM2ComputableAux.tm Bool Bool\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Counting.SharpPClosure.liftComputer R hR)))\n          (@List.map.{0, 0} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer R hR)))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer R hR)))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer R hR)))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                        @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Counting.SharpPClosure.liftComputer R hR)))))\n              Bool\n              (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer R hR))))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n              p)))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer R hR)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer R hR))))))\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Counting.SharpPClosure.liftComputer R hR))))\n          (Turing.haltList\n            (@Turing.TM2ComputableAux.tm Bool Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Counting.SharpPClosure.liftComputer R hR))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer R hR)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                        @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Counting.SharpPClosure.liftComputer R hR))))))\n            (@List.map.{0, 0} Bool\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer R hR)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                        @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Counting.SharpPClosure.liftComputer R hR)))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                        @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Counting.SharpPClosure.liftComputer R hR)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                          @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Counting.SharpPClosure.liftComputer R hR)))))\n                Bool\n                (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer R hR))))\n              (@PlanarHom.Complexity.BitEncoding.encode\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))))))\n        (@Polynomial.eval.{0} Nat Nat.instSemiring\n          (@List.length.{0} Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n              p))\n          (@Turing.TM2ComputableInPolyTime.time (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n            (@Counting.SharpPClosure.liftComputer R hR)))\n        (@Turing.TM2ComputableInPolyTime.outputsFun (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n          (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n          (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n            @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n              (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n          (@Counting.SharpPClosure.liftComputer R hR) p)))\n    (@Polynomial.eval.{0} Nat Nat.instSemiring\n      (@List.length.{0} Bool\n        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n          p))\n      (@Turing.TM2ComputableInPolyTime.time (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n        (@PlanarHom.Complexity.BitEncoding.encode (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n        (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n          @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n            (R (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n        (@Counting.SharpPClosure.liftComputer R hR)))"},{"category":"tools","display_name":"Counting.SharpPClosure.padVerifier","family":"sharpp","import":"Counting.SharpPClosure.Machines","kind":"definition","module":"Counting.SharpPClosure.Machines","name":"Counting.SharpPClosure.padVerifier","name_semantics":"actual named kernel declaration","readable_type":"Polynomial Nat →\n  (Prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits → Bool) →\n    Prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits → Bool","role":"public","source_line":59,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Machines.lean","source_sha256":"8f74ac127372cd14bca75be8962e2479af8391a74f4dcd3e31e1b3b59dc700d1","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Machines.lean#L59","type":"(q : @Polynomial.{0} Nat Nat.instSemiring) →\n  (V : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits → Bool) →\n    (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) → Bool"},{"category":"tools","display_name":"Counting.SharpPClosure.paddedAccept","family":"sharpp","import":"Counting.SharpPClosure.Basic","kind":"definition","module":"Counting.SharpPClosure.Basic","name":"Counting.SharpPClosure.paddedAccept","name_semantics":"actual named kernel declaration","readable_type":"Nat → (List Bool → Bool) → List Bool → Bool","role":"public","source_line":17,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Basic.lean","source_sha256":"b5344fa91792f24c177f6dd9dc23024f7cc810d4d892c2c678ce3977f7ff96e2","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Basic.lean#L17","specification":"fun (length : Nat) (accept : List.{0} Bool → Bool) (w : List.{0} Bool) =>\n  Bool.and\n    (Bool.and\n      (@Decidable.decide (@LE.le.{0} Nat instLENat length (@List.length.{0} Bool w))\n        (Nat.decLe length (@List.length.{0} Bool w)))\n      (accept (@List.take.{0} Bool length w)))\n    (Bool.not (@List.any.{0} Bool (@List.drop.{0} Bool length w) (@id.{1} Bool)))","type":"(length : Nat) → (accept : List.{0} Bool → Bool) → (w : List.{0} Bool) → Bool"},{"category":"tools","display_name":"Counting.SharpPClosure.sourceWitnessLength","family":"sharpp","import":"Counting.SharpPClosure","kind":"definition","module":"Counting.SharpPClosure.Transport","name":"Counting.SharpPClosure.sourceWitnessLength","name_semantics":"actual named kernel declaration","readable_type":"{f g : PlanarHom.Complexity.Bits → Nat} →\n  Counting.Complexity.ParsimoniousReduction (Computability.encodingList Bool) (Computability.encodingList Bool) f g →\n    Counting.Complexity.SharpPWitness (Computability.encodingList Bool) g → Polynomial Nat","role":"public","source_line":23,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Transport.lean","source_sha256":"b95d8080c5ba03fb5e1df4368647a430e3648ae4c715ce91b856c398f5bab3fc","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Transport.lean#L23","specification":"fun {f g : PlanarHom.Complexity.Bits → Nat}\n    (r :\n      @Counting.Complexity.ParsimoniousReduction (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype Bool.fintype\n        (Computability.encodingList Bool) (Computability.encodingList Bool) f g)\n    (w : @Counting.Complexity.SharpPWitness (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool) g) =>\n  @Polynomial.comp.{0} Nat Nat.instSemiring\n    (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n      (Computability.encodingList Bool) g w)\n    (@Counting.Computation.PolyTime.outputLengthPolynomial (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype\n      Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n      (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype\n        Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f g r)\n      (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype\n        Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f g r))","type":"{f g : PlanarHom.Complexity.Bits → Nat} →\n  (r :\n      @Counting.Complexity.ParsimoniousReduction (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype Bool.fintype\n        (Computability.encodingList Bool) (Computability.encodingList Bool) f g) →\n    (w : @Counting.Complexity.SharpPWitness (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool) g) →\n      @Polynomial.{0} Nat Nat.instSemiring"},{"category":"tools","display_name":"Counting.SharpPClosure.targetWitnessLength_le","family":"sharpp","import":"Counting.SharpPClosure","kind":"theorem","module":"Counting.SharpPClosure.Transport","name":"Counting.SharpPClosure.targetWitnessLength_le","name_semantics":"actual named kernel declaration","readable_type":"∀ {f g : PlanarHom.Complexity.Bits → Nat}\n  (r :\n    Counting.Complexity.ParsimoniousReduction (Computability.encodingList Bool) (Computability.encodingList Bool) f g)\n  (w : Counting.Complexity.SharpPWitness (Computability.encodingList Bool) g) (x : PlanarHom.Complexity.Bits),\n  instLENat.le (Polynomial.eval (r.map x).length w.witnessLength)\n    (Polynomial.eval (List.length x) (Counting.SharpPClosure.sourceWitnessLength r w))","role":"public","source_line":28,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Transport.lean","source_sha256":"b95d8080c5ba03fb5e1df4368647a430e3648ae4c715ce91b856c398f5bab3fc","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Transport.lean#L28","type":"∀ {f g : PlanarHom.Complexity.Bits → Nat}\n  (r :\n    @Counting.Complexity.ParsimoniousReduction (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype Bool.fintype\n      (Computability.encodingList Bool) (Computability.encodingList Bool) f g)\n  (w : @Counting.Complexity.SharpPWitness (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool) g)\n  (x : PlanarHom.Complexity.Bits),\n  @LE.le.{0} Nat instLENat\n    (@Polynomial.eval.{0} Nat Nat.instSemiring\n      (@List.length.{0} Bool\n        (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype\n          Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f g r x))\n      (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n        (Computability.encodingList Bool) g w))\n    (@Polynomial.eval.{0} Nat Nat.instSemiring (@List.length.{0} Bool x)\n      (@Counting.SharpPClosure.sourceWitnessLength f g r w))"},{"category":"tools","display_name":"Counting.SharpPClosure.transportAccept","family":"sharpp","import":"Counting.SharpPClosure","kind":"definition","module":"Counting.SharpPClosure.Transport","name":"Counting.SharpPClosure.transportAccept","name_semantics":"actual named kernel declaration","readable_type":"{f g : PlanarHom.Complexity.Bits → Nat} →\n  Counting.Complexity.ParsimoniousReduction (Computability.encodingList Bool) (Computability.encodingList Bool) f g →\n    Counting.Complexity.SharpPWitness (Computability.encodingList Bool) g →\n      Prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits → Bool","role":"public","source_line":37,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Transport.lean","source_sha256":"b95d8080c5ba03fb5e1df4368647a430e3648ae4c715ce91b856c398f5bab3fc","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Transport.lean#L37","specification":"fun {f g : PlanarHom.Complexity.Bits → Nat}\n    (r :\n      @Counting.Complexity.ParsimoniousReduction (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype Bool.fintype\n        (Computability.encodingList Bool) (Computability.encodingList Bool) f g)\n    (w : @Counting.Complexity.SharpPWitness (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool) g)\n    (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n  Counting.SharpPClosure.padVerifier\n    (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n      (Computability.encodingList Bool) g w)\n    (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool) g w)\n    (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n      (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype\n        Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f g r\n        (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))","type":"{f g : PlanarHom.Complexity.Bits → Nat} →\n  (r :\n      @Counting.Complexity.ParsimoniousReduction (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype Bool.fintype\n        (Computability.encodingList Bool) (Computability.encodingList Bool) f g) →\n    (w : @Counting.Complexity.SharpPWitness (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool) g) →\n      (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) → Bool"},{"category":"tools","display_name":"Counting.SharpPClosure.transportAccept_count","family":"sharpp","import":"Counting.SharpPClosure","kind":"theorem","module":"Counting.SharpPClosure.Transport","name":"Counting.SharpPClosure.transportAccept_count","name_semantics":"actual named kernel declaration","readable_type":"∀ {f g : PlanarHom.Complexity.Bits → Nat}\n  (r :\n    Counting.Complexity.ParsimoniousReduction (Computability.encodingList Bool) (Computability.encodingList Bool) f g)\n  (w : Counting.Complexity.SharpPWitness (Computability.encodingList Bool) g) (x : PlanarHom.Complexity.Bits),\n  Eq\n    (Counting.Foundation.witnessCount (Polynomial.eval (List.length x) (Counting.SharpPClosure.sourceWitnessLength r w))\n      fun bits => Counting.SharpPClosure.transportAccept r w { fst := x, snd := bits })\n    (f x)","role":"public","source_line":104,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Transport.lean","source_sha256":"b95d8080c5ba03fb5e1df4368647a430e3648ae4c715ce91b856c398f5bab3fc","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Transport.lean#L104","type":"∀ {f g : PlanarHom.Complexity.Bits → Nat}\n  (r :\n    @Counting.Complexity.ParsimoniousReduction (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype Bool.fintype\n      (Computability.encodingList Bool) (Computability.encodingList Bool) f g)\n  (w : @Counting.Complexity.SharpPWitness (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool) g)\n  (x : PlanarHom.Complexity.Bits),\n  @Eq.{1} Nat\n    (Counting.Foundation.witnessCount\n      (@Polynomial.eval.{0} Nat Nat.instSemiring (@List.length.{0} Bool x)\n        (@Counting.SharpPClosure.sourceWitnessLength f g r w))\n      fun (bits : List.{0} Bool) =>\n      @Counting.SharpPClosure.transportAccept f g r w\n        (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits x bits))\n    (f x)"},{"category":"tools","display_name":"Counting.SharpPClosure.verifier","family":"sharpp","import":"Counting.SharpPClosure","kind":"definition","module":"Counting.SharpPClosure.Transport","name":"Counting.SharpPClosure.verifier","name_semantics":"actual named kernel declaration","readable_type":"{f g : PlanarHom.Complexity.Bits → Nat} →\n  (r :\n      Counting.Complexity.ParsimoniousReduction (Computability.encodingList Bool) (Computability.encodingList Bool) f\n        g) →\n    (w : Counting.Complexity.SharpPWitness (Computability.encodingList Bool) g) →\n      Counting.Computation.PolyTime\n        (Computability.encodingProd (Computability.encodingList Bool) (Computability.encodingList Bool))\n        (Holant.Complexity.taggedBoolEncoding Bool) (Counting.SharpPClosure.transportAccept r w)","role":"public","source_line":64,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Transport.lean","source_sha256":"b95d8080c5ba03fb5e1df4368647a430e3648ae4c715ce91b856c398f5bab3fc","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Transport.lean#L64","type":"{f g : PlanarHom.Complexity.Bits → Nat} →\n  (r :\n      @Counting.Complexity.ParsimoniousReduction (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype Bool.fintype\n        (Computability.encodingList Bool) (Computability.encodingList Bool) f g) →\n    (w : @Counting.Complexity.SharpPWitness (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool) g) →\n      @Counting.Computation.PolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool (Sum.{0, 0} Bool Bool)\n        (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n          (Computability.encodingList Bool) (Computability.encodingList Bool))\n        (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)"},{"category":"tools","display_name":"Counting.SharpPClosure.verifier_steps","family":"sharpp","import":"Counting.SharpPClosure","kind":"theorem","module":"Counting.SharpPClosure.Transport","name":"Counting.SharpPClosure.verifier_steps","name_semantics":"actual named kernel declaration","readable_type":"∀ {f g : PlanarHom.Complexity.Bits → Nat}\n  (r :\n    Counting.Complexity.ParsimoniousReduction (Computability.encodingList Bool) (Computability.encodingList Bool) f g)\n  (w : Counting.Complexity.SharpPWitness (Computability.encodingList Bool) g)\n  (p : Prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits),\n  Eq ((Counting.SharpPClosure.verifier r w).outputsFun p).steps\n    (instHAdd.hAdd\n      (Counting.WitnessMachines.BooleanOutput.toTagged.outputsFun (Counting.SharpPClosure.transportAccept r w p)).steps\n      (instHAdd.hAdd\n        (instHAdd.hAdd ((Counting.SharpPClosure.paddedComputer w).outputsFun { fst := r.map p.fst, snd := p.snd }).steps\n          ((Counting.SharpPClosure.liftComputer r.machine.toTM2ComputableInPolyTime).outputsFun p).steps)\n        (Counting.WitnessMachines.TaggedToFramed.polyTime.outputsFun p).steps))","role":"public","source_line":84,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Transport.lean","source_sha256":"b95d8080c5ba03fb5e1df4368647a430e3648ae4c715ce91b856c398f5bab3fc","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Transport.lean#L84","type":"∀ {f g : PlanarHom.Complexity.Bits → Nat}\n  (r :\n    @Counting.Complexity.ParsimoniousReduction (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype Bool.fintype\n      (Computability.encodingList Bool) (Computability.encodingList Bool) f g)\n  (w : @Counting.Complexity.SharpPWitness (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool) g)\n  (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits),\n  @Eq.{1} Nat\n    (@StateTransition.EvalsTo.steps.{0}\n      (Turing.FinTM2.Cfg\n        (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n            (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool)))\n            (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n              (Holant.Complexity.taggedBoolEncoding Bool))\n            (@Counting.SharpPClosure.transportAccept f g r w)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool))\n              (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n              (@Counting.SharpPClosure.verifier f g r w)))))\n      (Turing.FinTM2.step\n        (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n            (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool)))\n            (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n              (Holant.Complexity.taggedBoolEncoding Bool))\n            (@Counting.SharpPClosure.transportAccept f g r w)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool))\n              (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n              (@Counting.SharpPClosure.verifier f g r w)))))\n      (Turing.initList\n        (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n            (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool)))\n            (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n              (Holant.Complexity.taggedBoolEncoding Bool))\n            (@Counting.SharpPClosure.transportAccept f g r w)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool))\n              (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n              (@Counting.SharpPClosure.verifier f g r w))))\n        (@List.map.{0, 0} (Sum.{0, 0} Bool Bool)\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  (Sum.{0, 0} Bool Bool)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@Counting.SharpPClosure.transportAccept f g r w)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool))\n                  (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Counting.SharpPClosure.verifier f g r w))))\n            (Turing.FinTM2.k₀\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Counting.SharpPClosure.verifier f g r w))))))\n          (@Equiv.invFun.{1, 1}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Counting.SharpPClosure.verifier f g r w))))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Counting.SharpPClosure.verifier f g r w))))))\n            (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableAux.inputAlphabet (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  (Sum.{0, 0} Bool Bool)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@Counting.SharpPClosure.transportAccept f g r w)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool))\n                  (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Counting.SharpPClosure.verifier f g r w)))))\n          (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n            (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n              (Computability.encodingList Bool) (Computability.encodingList Bool))\n            p)))\n      (@Option.map.{0, 0}\n        (List.{0}\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  (Sum.{0, 0} Bool Bool)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@Counting.SharpPClosure.transportAccept f g r w)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool))\n                  (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Counting.SharpPClosure.verifier f g r w))))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Counting.SharpPClosure.verifier f g r w)))))))\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                (Sum.{0, 0} Bool Bool)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool)))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool))\n              (@Counting.SharpPClosure.transportAccept f g r w)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool))\n                (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                (@Counting.SharpPClosure.verifier f g r w)))))\n        (Turing.haltList\n          (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                (Sum.{0, 0} Bool Bool)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool)))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool))\n              (@Counting.SharpPClosure.transportAccept f g r w)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool))\n                (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                (@Counting.SharpPClosure.verifier f g r w)))))\n        (@Option.some.{0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Counting.SharpPClosure.verifier f g r w))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Counting.SharpPClosure.verifier f g r w)))))))\n          (@List.map.{0, 0} (Sum.{0, 0} Bool Bool)\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Counting.SharpPClosure.verifier f g r w))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Counting.SharpPClosure.verifier f g r w))))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Counting.SharpPClosure.verifier f g r w))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                        (Sum.{0, 0} Bool Bool)\n                        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool))\n                      (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (Computability.encodingList Bool) (Computability.encodingList Bool))\n                        (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                        (@Counting.SharpPClosure.verifier f g r w))))))\n              (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableAux.outputAlphabet (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Counting.SharpPClosure.verifier f g r w)))))\n            (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n              (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w p)))))\n      (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                (Sum.{0, 0} Bool Bool)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool)))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool))\n              (@Counting.SharpPClosure.transportAccept f g r w)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool))\n                (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                (@Counting.SharpPClosure.verifier f g r w)))))\n        (Turing.FinTM2.step\n          (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                (Sum.{0, 0} Bool Bool)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool)))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool))\n              (@Counting.SharpPClosure.transportAccept f g r w)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool))\n                (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                (@Counting.SharpPClosure.verifier f g r w)))))\n        (Turing.initList\n          (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                (Sum.{0, 0} Bool Bool)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool)))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool))\n              (@Counting.SharpPClosure.transportAccept f g r w)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool))\n                (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                (@Counting.SharpPClosure.verifier f g r w))))\n          (@List.map.{0, 0} (Sum.{0, 0} Bool Bool)\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Counting.SharpPClosure.verifier f g r w))))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Counting.SharpPClosure.verifier f g r w))))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Counting.SharpPClosure.verifier f g r w))))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                        (Sum.{0, 0} Bool Bool)\n                        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool))\n                      (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (Computability.encodingList Bool) (Computability.encodingList Bool))\n                        (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                        (@Counting.SharpPClosure.verifier f g r w))))))\n              (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableAux.inputAlphabet (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Counting.SharpPClosure.verifier f g r w)))))\n            (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool))\n              p)))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Counting.SharpPClosure.verifier f g r w))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Counting.SharpPClosure.verifier f g r w)))))))\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  (Sum.{0, 0} Bool Bool)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@Counting.SharpPClosure.transportAccept f g r w)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool))\n                  (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Counting.SharpPClosure.verifier f g r w)))))\n          (Turing.haltList\n            (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  (Sum.{0, 0} Bool Bool)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@Counting.SharpPClosure.transportAccept f g r w)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool))\n                  (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Counting.SharpPClosure.verifier f g r w)))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Counting.SharpPClosure.verifier f g r w))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                        (Sum.{0, 0} Bool Bool)\n                        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool))\n                      (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (Computability.encodingList Bool) (Computability.encodingList Bool))\n                        (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                        (@Counting.SharpPClosure.verifier f g r w)))))))\n            (@List.map.{0, 0} (Sum.{0, 0} Bool Bool)\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Counting.SharpPClosure.verifier f g r w))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                        (Sum.{0, 0} Bool Bool)\n                        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool))\n                      (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (Computability.encodingList Bool) (Computability.encodingList Bool))\n                        (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                        (@Counting.SharpPClosure.verifier f g r w))))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                        (Sum.{0, 0} Bool Bool)\n                        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool))\n                      (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (Computability.encodingList Bool) (Computability.encodingList Bool))\n                        (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                        (@Counting.SharpPClosure.verifier f g r w))))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                        Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                        (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                          (Sum.{0, 0} Bool Bool)\n                          (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                        (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                          (Holant.Complexity.taggedBoolEncoding Bool))\n                        (@Counting.SharpPClosure.transportAccept f g r w)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool (Sum.{0, 0} Bool Bool)\n                          (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                          (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                          (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            (Computability.encodingList Bool) (Computability.encodingList Bool))\n                          (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                          (@Counting.SharpPClosure.verifier f g r w))))))\n                (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableAux.outputAlphabet (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Counting.SharpPClosure.verifier f g r w)))))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w p)))))\n        (@Polynomial.eval.{0} Nat Nat.instSemiring\n          (@List.length.{0} (Sum.{0, 0} Bool Bool)\n            (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool))\n              p))\n          (@Turing.TM2ComputableInPolyTime.time (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n            (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool)))\n            (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n              (Holant.Complexity.taggedBoolEncoding Bool))\n            (@Counting.SharpPClosure.transportAccept f g r w)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool))\n              (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n              (@Counting.SharpPClosure.verifier f g r w))))\n        (@Turing.TM2ComputableInPolyTime.outputsFun (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n          (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n          (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n            (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n              (Computability.encodingList Bool) (Computability.encodingList Bool)))\n          (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n            (Holant.Complexity.taggedBoolEncoding Bool))\n          (@Counting.SharpPClosure.transportAccept f g r w)\n          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n            (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n            (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n            (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n              (Computability.encodingList Bool) (Computability.encodingList Bool))\n            (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n            (@Counting.SharpPClosure.verifier f g r w))\n          p)))\n    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n      (@StateTransition.EvalsTo.steps.{0}\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n              (@Computability.Encoding.encode.{0, 0} Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool))\n              (@id.{1} Bool)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool) Bool.fintype\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                Counting.WitnessMachines.BooleanOutput.toTagged))))\n        (Turing.FinTM2.step\n          (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n              (@Computability.Encoding.encode.{0, 0} Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool))\n              (@id.{1} Bool)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool) Bool.fintype\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                Counting.WitnessMachines.BooleanOutput.toTagged))))\n        (Turing.initList\n          (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n              (@Computability.Encoding.encode.{0, 0} Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool))\n              (@id.{1} Bool)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool) Bool.fintype\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                Counting.WitnessMachines.BooleanOutput.toTagged)))\n          (@List.map.{0, 0} Bool\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@id.{1} Bool)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                    Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                    Counting.WitnessMachines.BooleanOutput.toTagged)))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@id.{1} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                      Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                      Counting.WitnessMachines.BooleanOutput.toTagged)))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@id.{1} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                      Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                      Counting.WitnessMachines.BooleanOutput.toTagged)))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                      (@Computability.Encoding.encode.{0, 0} Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool))\n                      (@id.{1} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                        Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                        Counting.WitnessMachines.BooleanOutput.toTagged)))))\n              Bool\n              (@Turing.TM2ComputableAux.inputAlphabet Bool (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@id.{1} Bool)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                    Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                    Counting.WitnessMachines.BooleanOutput.toTagged))))\n            (@Computability.Encoding.encode.{0, 0} Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n              (@Counting.SharpPClosure.transportAccept f g r w p))))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@id.{1} Bool)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                    Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                    Counting.WitnessMachines.BooleanOutput.toTagged)))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@id.{1} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                      Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                      Counting.WitnessMachines.BooleanOutput.toTagged))))))\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@id.{1} Bool)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                  Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                  Counting.WitnessMachines.BooleanOutput.toTagged))))\n          (Turing.haltList\n            (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@id.{1} Bool)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                  Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                  Counting.WitnessMachines.BooleanOutput.toTagged))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@id.{1} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                      Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                      Counting.WitnessMachines.BooleanOutput.toTagged)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                      (@Computability.Encoding.encode.{0, 0} Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool))\n                      (@id.{1} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                        Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                        Counting.WitnessMachines.BooleanOutput.toTagged))))))\n            (@List.map.{0, 0} (Sum.{0, 0} Bool Bool)\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@id.{1} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                      Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                      Counting.WitnessMachines.BooleanOutput.toTagged)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                      (@Computability.Encoding.encode.{0, 0} Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool))\n                      (@id.{1} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                        Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                        Counting.WitnessMachines.BooleanOutput.toTagged)))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                      (@Computability.Encoding.encode.{0, 0} Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool))\n                      (@id.{1} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                        Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                        Counting.WitnessMachines.BooleanOutput.toTagged)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                        (@Computability.Encoding.encode.{0, 0} Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                        (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                          (Holant.Complexity.taggedBoolEncoding Bool))\n                        (@id.{1} Bool)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                          Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                          (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                          Counting.WitnessMachines.BooleanOutput.toTagged)))))\n                (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableAux.outputAlphabet Bool (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@id.{1} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                      Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                      Counting.WitnessMachines.BooleanOutput.toTagged))))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool)\n                (@id.{1} Bool (@Counting.SharpPClosure.transportAccept f g r w p))))))\n        (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@id.{1} Bool)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                  Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                  Counting.WitnessMachines.BooleanOutput.toTagged))))\n          (Turing.FinTM2.step\n            (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@id.{1} Bool)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                  Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                  Counting.WitnessMachines.BooleanOutput.toTagged))))\n          (Turing.initList\n            (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@id.{1} Bool)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                  Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                  Counting.WitnessMachines.BooleanOutput.toTagged)))\n            (@List.map.{0, 0} Bool\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@id.{1} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                      Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                      Counting.WitnessMachines.BooleanOutput.toTagged)))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                      (@Computability.Encoding.encode.{0, 0} Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool))\n                      (@id.{1} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                        Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                        Counting.WitnessMachines.BooleanOutput.toTagged)))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                      (@Computability.Encoding.encode.{0, 0} Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool))\n                      (@id.{1} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                        Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                        Counting.WitnessMachines.BooleanOutput.toTagged)))\n                  (Turing.FinTM2.k₀\n                    (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                        (@Computability.Encoding.encode.{0, 0} Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                        (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                          (Holant.Complexity.taggedBoolEncoding Bool))\n                        (@id.{1} Bool)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                          Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                          (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                          Counting.WitnessMachines.BooleanOutput.toTagged)))))\n                Bool\n                (@Turing.TM2ComputableAux.inputAlphabet Bool (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@id.{1} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                      Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                      Counting.WitnessMachines.BooleanOutput.toTagged))))\n              (@Computability.Encoding.encode.{0, 0} Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                (@Counting.SharpPClosure.transportAccept f g r w p))))\n          (@Option.map.{0, 0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@id.{1} Bool)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                      Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                      Counting.WitnessMachines.BooleanOutput.toTagged)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                      (@Computability.Encoding.encode.{0, 0} Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool))\n                      (@id.{1} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                        Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                        Counting.WitnessMachines.BooleanOutput.toTagged))))))\n            (Turing.FinTM2.Cfg\n              (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@id.{1} Bool)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                    Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                    Counting.WitnessMachines.BooleanOutput.toTagged))))\n            (Turing.haltList\n              (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@id.{1} Bool)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                    Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                    Counting.WitnessMachines.BooleanOutput.toTagged))))\n            (@Option.some.{0}\n              (List.{0}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                      (@Computability.Encoding.encode.{0, 0} Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool))\n                      (@id.{1} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                        Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                        Counting.WitnessMachines.BooleanOutput.toTagged)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                        (@Computability.Encoding.encode.{0, 0} Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                        (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                          (Holant.Complexity.taggedBoolEncoding Bool))\n                        (@id.{1} Bool)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                          Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                          (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                          Counting.WitnessMachines.BooleanOutput.toTagged))))))\n              (@List.map.{0, 0} (Sum.{0, 0} Bool Bool)\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                      (@Computability.Encoding.encode.{0, 0} Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool))\n                      (@id.{1} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                        Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                        Counting.WitnessMachines.BooleanOutput.toTagged)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                        (@Computability.Encoding.encode.{0, 0} Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                        (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                          (Holant.Complexity.taggedBoolEncoding Bool))\n                        (@id.{1} Bool)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                          Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                          (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                          Counting.WitnessMachines.BooleanOutput.toTagged)))))\n                (@Equiv.invFun.{1, 1}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                        (@Computability.Encoding.encode.{0, 0} Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                        (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                          (Holant.Complexity.taggedBoolEncoding Bool))\n                        (@id.{1} Bool)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                          Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                          (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                          (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                          Counting.WitnessMachines.BooleanOutput.toTagged)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool (Sum.{0, 0} Bool Bool)\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                          (@Computability.Encoding.encode.{0, 0} Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool\n                              PlanarHom.Complexity.BitEncoding.bool))\n                          (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                            (Holant.Complexity.taggedBoolEncoding Bool))\n                          (@id.{1} Bool)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                            Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                            (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                            (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                            Counting.WitnessMachines.BooleanOutput.toTagged)))))\n                  (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableAux.outputAlphabet Bool (Sum.{0, 0} Bool Bool)\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                      (@Computability.Encoding.encode.{0, 0} Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n                      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool))\n                      (@id.{1} Bool)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool)\n                        Bool.fintype (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                        Counting.WitnessMachines.BooleanOutput.toTagged))))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool)\n                  (@id.{1} Bool (@Counting.SharpPClosure.transportAccept f g r w p))))))\n          (@Polynomial.eval.{0} Nat Nat.instSemiring\n            (@List.length.{0} Bool\n              (@Computability.Encoding.encode.{0, 0} Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                (@Counting.SharpPClosure.transportAccept f g r w p)))\n            (@Turing.TM2ComputableInPolyTime.time Bool Bool Bool (Sum.{0, 0} Bool Bool)\n              (@Computability.Encoding.encode.{0, 0} Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool))\n              (@id.{1} Bool)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool) Bool.fintype\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n                (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n                Counting.WitnessMachines.BooleanOutput.toTagged)))\n          (@Turing.TM2ComputableInPolyTime.outputsFun Bool Bool Bool (Sum.{0, 0} Bool Bool)\n            (@Computability.Encoding.encode.{0, 0} Bool Bool\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool))\n            (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n              (Holant.Complexity.taggedBoolEncoding Bool))\n            (@id.{1} Bool)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime Bool Bool Bool (Sum.{0, 0} Bool Bool) Bool.fintype\n              (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@PlanarHom.Complexity.BitEncoding.toFinEncoding Bool PlanarHom.Complexity.BitEncoding.bool)\n              (Holant.Complexity.taggedBoolEncoding Bool) (@id.{1} Bool)\n              Counting.WitnessMachines.BooleanOutput.toTagged)\n            (@Counting.SharpPClosure.transportAccept f g r w p))))\n      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n          (@StateTransition.EvalsTo.steps.{0}\n            (Turing.FinTM2.Cfg\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                  (Counting.SharpPClosure.padVerifier\n                    (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                      (Computability.encodingList Bool) g w)\n                    (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                      (Computability.encodingList Bool) g w))\n                  (@Counting.SharpPClosure.paddedComputer g w))))\n            (Turing.FinTM2.step\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                  (Counting.SharpPClosure.padVerifier\n                    (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                      (Computability.encodingList Bool) g w)\n                    (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                      (Computability.encodingList Bool) g w))\n                  (@Counting.SharpPClosure.paddedComputer g w))))\n            (Turing.initList\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                  (Counting.SharpPClosure.padVerifier\n                    (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                      (Computability.encodingList Bool) g w)\n                    (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                      (Computability.encodingList Bool) g w))\n                  (@Counting.SharpPClosure.paddedComputer g w)))\n              (@List.map.{0, 0} Bool\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                      (Counting.SharpPClosure.padVerifier\n                        (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                          (Computability.encodingList Bool) g w)\n                        (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                          (Computability.encodingList Bool) g w))\n                      (@Counting.SharpPClosure.paddedComputer g w)))\n                  (Turing.FinTM2.k₀\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                        (Counting.SharpPClosure.padVerifier\n                          (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                            (Computability.encodingList Bool) g w)\n                          (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                            (Computability.encodingList Bool) g w))\n                        (@Counting.SharpPClosure.paddedComputer g w)))))\n                (@Equiv.invFun.{1, 1}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                        (Counting.SharpPClosure.padVerifier\n                          (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                            (Computability.encodingList Bool) g w)\n                          (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                            (Computability.encodingList Bool) g w))\n                        (@Counting.SharpPClosure.paddedComputer g w)))\n                    (Turing.FinTM2.k₀\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                          (Counting.SharpPClosure.padVerifier\n                            (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                              (Computability.encodingList Bool) g w)\n                            (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                              (Computability.encodingList Bool) g w))\n                          (@Counting.SharpPClosure.paddedComputer g w)))))\n                  Bool\n                  (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                      (Counting.SharpPClosure.padVerifier\n                        (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                          (Computability.encodingList Bool) g w)\n                        (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                          (Computability.encodingList Bool) g w))\n                      (@Counting.SharpPClosure.paddedComputer g w))))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                  (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f g\n                      r (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p)))))\n            (@Option.map.{0, 0}\n              (List.{0}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                      (Counting.SharpPClosure.padVerifier\n                        (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                          (Computability.encodingList Bool) g w)\n                        (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                          (Computability.encodingList Bool) g w))\n                      (@Counting.SharpPClosure.paddedComputer g w)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                        (Counting.SharpPClosure.padVerifier\n                          (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                            (Computability.encodingList Bool) g w)\n                          (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                            (Computability.encodingList Bool) g w))\n                        (@Counting.SharpPClosure.paddedComputer g w))))))\n              (Turing.FinTM2.Cfg\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                    (Counting.SharpPClosure.padVerifier\n                      (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                        (Computability.encodingList Bool) g w)\n                      (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                        (Computability.encodingList Bool) g w))\n                    (@Counting.SharpPClosure.paddedComputer g w))))\n              (Turing.haltList\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                    (Counting.SharpPClosure.padVerifier\n                      (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                        (Computability.encodingList Bool) g w)\n                      (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                        (Computability.encodingList Bool) g w))\n                    (@Counting.SharpPClosure.paddedComputer g w))))\n              (@Option.some.{0}\n                (List.{0}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                        (Counting.SharpPClosure.padVerifier\n                          (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                            (Computability.encodingList Bool) g w)\n                          (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                            (Computability.encodingList Bool) g w))\n                        (@Counting.SharpPClosure.paddedComputer g w)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                          (Counting.SharpPClosure.padVerifier\n                            (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                              (Computability.encodingList Bool) g w)\n                            (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                              (Computability.encodingList Bool) g w))\n                          (@Counting.SharpPClosure.paddedComputer g w))))))\n                (@List.map.{0, 0} Bool\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                        (Counting.SharpPClosure.padVerifier\n                          (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                            (Computability.encodingList Bool) g w)\n                          (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                            (Computability.encodingList Bool) g w))\n                        (@Counting.SharpPClosure.paddedComputer g w)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                          (Counting.SharpPClosure.padVerifier\n                            (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                              (Computability.encodingList Bool) g w)\n                            (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                              (Computability.encodingList Bool) g w))\n                          (@Counting.SharpPClosure.paddedComputer g w)))))\n                  (@Equiv.invFun.{1, 1}\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                          (Counting.SharpPClosure.padVerifier\n                            (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                              (Computability.encodingList Bool) g w)\n                            (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                              (Computability.encodingList Bool) g w))\n                          (@Counting.SharpPClosure.paddedComputer g w)))\n                      (Turing.FinTM2.k₁\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                            (Counting.SharpPClosure.padVerifier\n                              (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                                (Computability.encodingList Bool) g w)\n                              (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                                (Computability.encodingList Bool) g w))\n                            (@Counting.SharpPClosure.paddedComputer g w)))))\n                    Bool\n                    (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                        (Counting.SharpPClosure.padVerifier\n                          (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                            (Computability.encodingList Bool) g w)\n                          (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                            (Computability.encodingList Bool) g w))\n                        (@Counting.SharpPClosure.paddedComputer g w))))\n                  (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool\n                    (Counting.SharpPClosure.padVerifier\n                      (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                        (Computability.encodingList Bool) g w)\n                      (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                        (Computability.encodingList Bool) g w)\n                      (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p)))))))\n            (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n              (Turing.FinTM2.Cfg\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                    (Counting.SharpPClosure.padVerifier\n                      (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                        (Computability.encodingList Bool) g w)\n                      (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                        (Computability.encodingList Bool) g w))\n                    (@Counting.SharpPClosure.paddedComputer g w))))\n              (Turing.FinTM2.step\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                    (Counting.SharpPClosure.padVerifier\n                      (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                        (Computability.encodingList Bool) g w)\n                      (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                        (Computability.encodingList Bool) g w))\n                    (@Counting.SharpPClosure.paddedComputer g w))))\n              (Turing.initList\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                    (Counting.SharpPClosure.padVerifier\n                      (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                        (Computability.encodingList Bool) g w)\n                      (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                        (Computability.encodingList Bool) g w))\n                    (@Counting.SharpPClosure.paddedComputer g w)))\n                (@List.map.{0, 0} Bool\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                        (Counting.SharpPClosure.padVerifier\n                          (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                            (Computability.encodingList Bool) g w)\n                          (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                            (Computability.encodingList Bool) g w))\n                        (@Counting.SharpPClosure.paddedComputer g w)))\n                    (Turing.FinTM2.k₀\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                          (Counting.SharpPClosure.padVerifier\n                            (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                              (Computability.encodingList Bool) g w)\n                            (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                              (Computability.encodingList Bool) g w))\n                          (@Counting.SharpPClosure.paddedComputer g w)))))\n                  (@Equiv.invFun.{1, 1}\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                          (Counting.SharpPClosure.padVerifier\n                            (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                              (Computability.encodingList Bool) g w)\n                            (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                              (Computability.encodingList Bool) g w))\n                          (@Counting.SharpPClosure.paddedComputer g w)))\n                      (Turing.FinTM2.k₀\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                            (Counting.SharpPClosure.padVerifier\n                              (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                                (Computability.encodingList Bool) g w)\n                              (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                                (Computability.encodingList Bool) g w))\n                            (@Counting.SharpPClosure.paddedComputer g w)))))\n                    Bool\n                    (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                        (Counting.SharpPClosure.padVerifier\n                          (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                            (Computability.encodingList Bool) g w)\n                          (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                            (Computability.encodingList Bool) g w))\n                        (@Counting.SharpPClosure.paddedComputer g w))))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f\n                        g r (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p)))))\n              (@Option.map.{0, 0}\n                (List.{0}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                        (Counting.SharpPClosure.padVerifier\n                          (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                            (Computability.encodingList Bool) g w)\n                          (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                            (Computability.encodingList Bool) g w))\n                        (@Counting.SharpPClosure.paddedComputer g w)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                          (Counting.SharpPClosure.padVerifier\n                            (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                              (Computability.encodingList Bool) g w)\n                            (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                              (Computability.encodingList Bool) g w))\n                          (@Counting.SharpPClosure.paddedComputer g w))))))\n                (Turing.FinTM2.Cfg\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                      (Counting.SharpPClosure.padVerifier\n                        (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                          (Computability.encodingList Bool) g w)\n                        (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                          (Computability.encodingList Bool) g w))\n                      (@Counting.SharpPClosure.paddedComputer g w))))\n                (Turing.haltList\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                      (Counting.SharpPClosure.padVerifier\n                        (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                          (Computability.encodingList Bool) g w)\n                        (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                          (Computability.encodingList Bool) g w))\n                      (@Counting.SharpPClosure.paddedComputer g w))))\n                (@Option.some.{0}\n                  (List.{0}\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                          (Counting.SharpPClosure.padVerifier\n                            (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                              (Computability.encodingList Bool) g w)\n                            (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                              (Computability.encodingList Bool) g w))\n                          (@Counting.SharpPClosure.paddedComputer g w)))\n                      (Turing.FinTM2.k₁\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                            (Counting.SharpPClosure.padVerifier\n                              (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                                (Computability.encodingList Bool) g w)\n                              (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                                (Computability.encodingList Bool) g w))\n                            (@Counting.SharpPClosure.paddedComputer g w))))))\n                  (@List.map.{0, 0} Bool\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                          (Counting.SharpPClosure.padVerifier\n                            (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                              (Computability.encodingList Bool) g w)\n                            (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                              (Computability.encodingList Bool) g w))\n                          (@Counting.SharpPClosure.paddedComputer g w)))\n                      (Turing.FinTM2.k₁\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                            (Counting.SharpPClosure.padVerifier\n                              (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                                (Computability.encodingList Bool) g w)\n                              (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                                (Computability.encodingList Bool) g w))\n                            (@Counting.SharpPClosure.paddedComputer g w)))))\n                    (@Equiv.invFun.{1, 1}\n                      (Turing.FinTM2.Γ\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                            (Counting.SharpPClosure.padVerifier\n                              (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                                (Computability.encodingList Bool) g w)\n                              (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                                (Computability.encodingList Bool) g w))\n                            (@Counting.SharpPClosure.paddedComputer g w)))\n                        (Turing.FinTM2.k₁\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                              (Counting.SharpPClosure.padVerifier\n                                (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                                  (Computability.encodingList Bool) g w)\n                                (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                                  (Computability.encodingList Bool) g w))\n                              (@Counting.SharpPClosure.paddedComputer g w)))))\n                      Bool\n                      (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                          (Counting.SharpPClosure.padVerifier\n                            (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                              (Computability.encodingList Bool) g w)\n                            (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                              (Computability.encodingList Bool) g w))\n                          (@Counting.SharpPClosure.paddedComputer g w))))\n                    (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool\n                      (Counting.SharpPClosure.padVerifier\n                        (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                          (Computability.encodingList Bool) g w)\n                        (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                          (Computability.encodingList Bool) g w)\n                        (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p)))))))\n              (@Polynomial.eval.{0} Nat Nat.instSemiring\n                (@List.length.{0} Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f\n                        g r (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))))\n                (@Turing.TM2ComputableInPolyTime.time (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  Bool Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                  (Counting.SharpPClosure.padVerifier\n                    (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                      (Computability.encodingList Bool) g w)\n                    (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                      (Computability.encodingList Bool) g w))\n                  (@Counting.SharpPClosure.paddedComputer g w)))\n              (@Turing.TM2ComputableInPolyTime.outputsFun\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode Bool PlanarHom.Complexity.BitEncoding.bool)\n                (Counting.SharpPClosure.padVerifier\n                  (@Counting.Complexity.SharpPWitness.witnessLength (List.{0} Bool) Bool Bool.fintype\n                    (Computability.encodingList Bool) g w)\n                  (@Counting.Complexity.SharpPWitness.accept (List.{0} Bool) Bool Bool.fintype\n                    (Computability.encodingList Bool) g w))\n                (@Counting.SharpPClosure.paddedComputer g w)\n                (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                  (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype\n                    Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f g r\n                    (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p)))))\n          (@StateTransition.EvalsTo.steps.{0}\n            (Turing.FinTM2.Cfg\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f\n                        g r (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer\n                    (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f g\n                      r)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                      (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f\n                        g r)\n                      (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f\n                        g r))))))\n            (Turing.FinTM2.step\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f\n                        g r (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer\n                    (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f g\n                      r)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                      (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f\n                        g r)\n                      (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f\n                        g r))))))\n            (Turing.initList\n              (@Turing.TM2ComputableAux.tm Bool Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f\n                        g r (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer\n                    (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f g\n                      r)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                      (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f\n                        g r)\n                      (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f\n                        g r)))))\n              (@List.map.{0, 0} Bool\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                        @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Counting.SharpPClosure.liftComputer\n                        (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r)\n                          (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r)))))\n                  (Turing.FinTM2.k₀\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                          @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Counting.SharpPClosure.liftComputer\n                          (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                            Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool)\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)\n                            (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                              Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)))))))\n                (@Equiv.invFun.{1, 1}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                          @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Counting.SharpPClosure.liftComputer\n                          (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                            Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool)\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)\n                            (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                              Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)))))\n                    (Turing.FinTM2.k₀\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                            @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r\n                                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Counting.SharpPClosure.liftComputer\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)\n                            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                              Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool)\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)\n                              (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                                Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)))))))\n                  Bool\n                  (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                        @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Counting.SharpPClosure.liftComputer\n                        (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r)\n                          (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r))))))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                  p)))\n            (@Option.map.{0, 0}\n              (List.{0}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                        @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Counting.SharpPClosure.liftComputer\n                        (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r)\n                          (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r)))))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                          @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Counting.SharpPClosure.liftComputer\n                          (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                            Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool)\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)\n                            (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                              Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r))))))))\n              (Turing.FinTM2.Cfg\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer\n                      (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f\n                        g r)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                        (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r)\n                        (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r))))))\n              (Turing.haltList\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer\n                      (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f\n                        g r)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                        (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r)\n                        (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r))))))\n              (@Option.some.{0}\n                (List.{0}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                          @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Counting.SharpPClosure.liftComputer\n                          (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                            Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool)\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)\n                            (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                              Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)))))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                            @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r\n                                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Counting.SharpPClosure.liftComputer\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)\n                            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                              Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool)\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)\n                              (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                                Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r))))))))\n                (@List.map.{0, 0} Bool\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                          @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Counting.SharpPClosure.liftComputer\n                          (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                            Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool)\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)\n                            (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                              Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)))))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                            @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r\n                                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Counting.SharpPClosure.liftComputer\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)\n                            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                              Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool)\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)\n                              (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                                Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)))))))\n                  (@Equiv.invFun.{1, 1}\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                            @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r\n                                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Counting.SharpPClosure.liftComputer\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)\n                            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                              Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool)\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)\n                              (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                                Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)))))\n                      (Turing.FinTM2.k₁\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool\n                                  Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                  (Computability.encodingList Bool) f g r\n                                  (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                            (@Counting.SharpPClosure.liftComputer\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)\n                              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool)\n                                Bool Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool)\n                                (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool\n                                  Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                  (Computability.encodingList Bool) f g r)\n                                (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                                  Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                  (Computability.encodingList Bool) f g r)))))))\n                    Bool\n                    (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                          @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Counting.SharpPClosure.liftComputer\n                          (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                            Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool)\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)\n                            (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                              Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r))))))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                    (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f\n                        g r (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))))))\n            (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n              (Turing.FinTM2.Cfg\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer\n                      (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f\n                        g r)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                        (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r)\n                        (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r))))))\n              (Turing.FinTM2.step\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer\n                      (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f\n                        g r)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                        (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r)\n                        (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r))))))\n              (Turing.initList\n                (@Turing.TM2ComputableAux.tm Bool Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                    (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                      @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Counting.SharpPClosure.liftComputer\n                      (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f\n                        g r)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                        (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r)\n                        (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r)))))\n                (@List.map.{0, 0} Bool\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                          @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Counting.SharpPClosure.liftComputer\n                          (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                            Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool)\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)\n                            (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                              Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)))))\n                    (Turing.FinTM2.k₀\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                            @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r\n                                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Counting.SharpPClosure.liftComputer\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)\n                            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                              Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool)\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)\n                              (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                                Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)))))))\n                  (@Equiv.invFun.{1, 1}\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                            @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r\n                                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Counting.SharpPClosure.liftComputer\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)\n                            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                              Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool)\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)\n                              (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                                Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)))))\n                      (Turing.FinTM2.k₀\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool\n                                  Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                  (Computability.encodingList Bool) f g r\n                                  (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                            (@Counting.SharpPClosure.liftComputer\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)\n                              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool)\n                                Bool Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool)\n                                (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool\n                                  Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                  (Computability.encodingList Bool) f g r)\n                                (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                                  Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                  (Computability.encodingList Bool) f g r)))))))\n                    Bool\n                    (@Turing.TM2ComputableAux.inputAlphabet Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                          @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Counting.SharpPClosure.liftComputer\n                          (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                            Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool)\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)\n                            (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                              Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r))))))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                    p)))\n              (@Option.map.{0, 0}\n                (List.{0}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (@PlanarHom.Complexity.BitEncoding.encode\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                        (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                          @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r\n                              (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                            (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Counting.SharpPClosure.liftComputer\n                          (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r)\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                            Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool)\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)\n                            (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                              Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)))))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                            @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r\n                                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Counting.SharpPClosure.liftComputer\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)\n                            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                              Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool)\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)\n                              (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                                Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r))))))))\n                (Turing.FinTM2.Cfg\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                        @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Counting.SharpPClosure.liftComputer\n                        (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r)\n                          (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r))))))\n                (Turing.haltList\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (@PlanarHom.Complexity.BitEncoding.encode\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                      (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                        @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                          (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r\n                            (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Counting.SharpPClosure.liftComputer\n                        (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r)\n                          (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                            (Computability.encodingList Bool) f g r))))))\n                (@Option.some.{0}\n                  (List.{0}\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                            @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r\n                                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Counting.SharpPClosure.liftComputer\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)\n                            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                              Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool)\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)\n                              (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                                Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)))))\n                      (Turing.FinTM2.k₁\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool\n                                  Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                  (Computability.encodingList Bool) f g r\n                                  (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                            (@Counting.SharpPClosure.liftComputer\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)\n                              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool)\n                                Bool Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool)\n                                (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool\n                                  Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                  (Computability.encodingList Bool) f g r)\n                                (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                                  Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                  (Computability.encodingList Bool) f g r))))))))\n                  (@List.map.{0, 0} Bool\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                            @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r\n                                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Counting.SharpPClosure.liftComputer\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)\n                            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                              Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool)\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)\n                              (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                                Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)))))\n                      (Turing.FinTM2.k₁\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool\n                                  Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                  (Computability.encodingList Bool) f g r\n                                  (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                            (@Counting.SharpPClosure.liftComputer\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)\n                              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool)\n                                Bool Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool)\n                                (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool\n                                  Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                  (Computability.encodingList Bool) f g r)\n                                (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                                  Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                  (Computability.encodingList Bool) f g r)))))))\n                    (@Equiv.invFun.{1, 1}\n                      (Turing.FinTM2.Γ\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (@PlanarHom.Complexity.BitEncoding.encode\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                PlanarHom.Complexity.BitEncoding.bits))\n                            (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                              @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool\n                                  Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                  (Computability.encodingList Bool) f g r\n                                  (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                                (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                            (@Counting.SharpPClosure.liftComputer\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)\n                              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool)\n                                Bool Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool)\n                                (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool\n                                  Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                  (Computability.encodingList Bool) f g r)\n                                (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                                  Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                  (Computability.encodingList Bool) f g r)))))\n                        (Turing.FinTM2.k₁\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (@PlanarHom.Complexity.BitEncoding.encode\n                                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                                (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits\n                                  PlanarHom.Complexity.Bits PlanarHom.Complexity.BitEncoding.bits\n                                  PlanarHom.Complexity.BitEncoding.bits))\n                              (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                                @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                                  (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool\n                                    Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                    (Computability.encodingList Bool) f g r\n                                    (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                                  (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                              (@Counting.SharpPClosure.liftComputer\n                                (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool\n                                  Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                  (Computability.encodingList Bool) f g r)\n                                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool)\n                                  Bool Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                  (Computability.encodingList Bool)\n                                  (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool\n                                    Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                    (Computability.encodingList Bool) f g r)\n                                  (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool)\n                                    Bool Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                    (Computability.encodingList Bool) f g r)))))))\n                      Bool\n                      (@Turing.TM2ComputableAux.outputAlphabet Bool Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (@PlanarHom.Complexity.BitEncoding.encode\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                          (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                            @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r\n                                (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                              (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                          (@Counting.SharpPClosure.liftComputer\n                            (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                              Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool) f g r)\n                            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool\n                              Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                              (Computability.encodingList Bool)\n                              (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                                Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r)\n                              (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool\n                                Bool Bool.fintype Bool.fintype (Computability.encodingList Bool)\n                                (Computability.encodingList Bool) f g r))))))\n                    (@PlanarHom.Complexity.BitEncoding.encode\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                      (@Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                        (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                          f g r (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                        (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))))))\n              (@Polynomial.eval.{0} Nat Nat.instSemiring\n                (@List.length.{0} Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits)\n                    p))\n                (@Turing.TM2ComputableInPolyTime.time (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (@PlanarHom.Complexity.BitEncoding.encode\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                  (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                    @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                      (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f\n                        g r (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                      (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                  (@Counting.SharpPClosure.liftComputer\n                    (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f g\n                      r)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                      (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f\n                        g r)\n                      (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f\n                        g r)))))\n              (@Turing.TM2ComputableInPolyTime.outputsFun\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool Bool\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (@PlanarHom.Complexity.BitEncoding.encode\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (@PlanarHom.Complexity.BitEncoding.prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    PlanarHom.Complexity.BitEncoding.bits PlanarHom.Complexity.BitEncoding.bits))\n                (fun (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) =>\n                  @Prod.mk.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits\n                    (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f g\n                      r (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                    (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n                (@Counting.SharpPClosure.liftComputer\n                  (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype\n                    Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f g r)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool)\n                    (@Counting.Complexity.ParsimoniousReduction.map (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f g\n                      r)\n                    (@Counting.Complexity.ParsimoniousReduction.machine (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      Bool.fintype Bool.fintype (Computability.encodingList Bool) (Computability.encodingList Bool) f g\n                      r)))\n                p))))\n        (@StateTransition.EvalsTo.steps.{0}\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  Bool Counting.WitnessMachines.TaggedToFramed.framedPair)\n                (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                  Counting.WitnessMachines.TaggedToFramed.taggedPair Counting.WitnessMachines.TaggedToFramed.framedPair\n                  (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                  Counting.WitnessMachines.TaggedToFramed.polyTime))))\n          (Turing.FinTM2.step\n            (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  Bool Counting.WitnessMachines.TaggedToFramed.framedPair)\n                (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                  Counting.WitnessMachines.TaggedToFramed.taggedPair Counting.WitnessMachines.TaggedToFramed.framedPair\n                  (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                  Counting.WitnessMachines.TaggedToFramed.polyTime))))\n          (Turing.initList\n            (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  Bool Counting.WitnessMachines.TaggedToFramed.framedPair)\n                (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                  Counting.WitnessMachines.TaggedToFramed.taggedPair Counting.WitnessMachines.TaggedToFramed.framedPair\n                  (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                  Counting.WitnessMachines.TaggedToFramed.polyTime)))\n            (@List.map.{0, 0} Counting.WitnessMachines.TaggedToFramed.Tag\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                      Counting.WitnessMachines.TaggedToFramed.framedPair)\n                    (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                      Counting.WitnessMachines.TaggedToFramed.taggedPair\n                      Counting.WitnessMachines.TaggedToFramed.framedPair\n                      (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                      Counting.WitnessMachines.TaggedToFramed.polyTime)))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                        Counting.WitnessMachines.TaggedToFramed.framedPair)\n                      (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                        Counting.WitnessMachines.TaggedToFramed.taggedPair\n                        Counting.WitnessMachines.TaggedToFramed.framedPair\n                        (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        Counting.WitnessMachines.TaggedToFramed.polyTime)))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                        Counting.WitnessMachines.TaggedToFramed.framedPair)\n                      (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                        Counting.WitnessMachines.TaggedToFramed.taggedPair\n                        Counting.WitnessMachines.TaggedToFramed.framedPair\n                        (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        Counting.WitnessMachines.TaggedToFramed.polyTime)))\n                  (Turing.FinTM2.k₀\n                    (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag\n                          Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                          Counting.WitnessMachines.TaggedToFramed.framedPair)\n                        (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                          (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                          Counting.WitnessMachines.TaggedToFramed.taggedPair\n                          Counting.WitnessMachines.TaggedToFramed.framedPair\n                          (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          Counting.WitnessMachines.TaggedToFramed.polyTime)))))\n                Counting.WitnessMachines.TaggedToFramed.Tag\n                (@Turing.TM2ComputableAux.inputAlphabet Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                      Counting.WitnessMachines.TaggedToFramed.framedPair)\n                    (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                      Counting.WitnessMachines.TaggedToFramed.taggedPair\n                      Counting.WitnessMachines.TaggedToFramed.framedPair\n                      (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                      Counting.WitnessMachines.TaggedToFramed.polyTime))))\n              (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair p)))\n          (@Option.map.{0, 0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                      Counting.WitnessMachines.TaggedToFramed.framedPair)\n                    (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                      Counting.WitnessMachines.TaggedToFramed.taggedPair\n                      Counting.WitnessMachines.TaggedToFramed.framedPair\n                      (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                      Counting.WitnessMachines.TaggedToFramed.polyTime)))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                        Counting.WitnessMachines.TaggedToFramed.framedPair)\n                      (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                        Counting.WitnessMachines.TaggedToFramed.taggedPair\n                        Counting.WitnessMachines.TaggedToFramed.framedPair\n                        (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        Counting.WitnessMachines.TaggedToFramed.polyTime))))))\n            (Turing.FinTM2.Cfg\n              (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                  (@Computability.Encoding.encode.{0, 0}\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                  (@Computability.Encoding.encode.{0, 0}\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                    Counting.WitnessMachines.TaggedToFramed.framedPair)\n                  (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                    Counting.WitnessMachines.TaggedToFramed.taggedPair\n                    Counting.WitnessMachines.TaggedToFramed.framedPair\n                    (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                    Counting.WitnessMachines.TaggedToFramed.polyTime))))\n            (Turing.haltList\n              (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                  (@Computability.Encoding.encode.{0, 0}\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                  (@Computability.Encoding.encode.{0, 0}\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                    Counting.WitnessMachines.TaggedToFramed.framedPair)\n                  (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                    Counting.WitnessMachines.TaggedToFramed.taggedPair\n                    Counting.WitnessMachines.TaggedToFramed.framedPair\n                    (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                    Counting.WitnessMachines.TaggedToFramed.polyTime))))\n            (@Option.some.{0}\n              (List.{0}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                        Counting.WitnessMachines.TaggedToFramed.framedPair)\n                      (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                        Counting.WitnessMachines.TaggedToFramed.taggedPair\n                        Counting.WitnessMachines.TaggedToFramed.framedPair\n                        (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        Counting.WitnessMachines.TaggedToFramed.polyTime)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag\n                          Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                          Counting.WitnessMachines.TaggedToFramed.framedPair)\n                        (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                          (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                          Counting.WitnessMachines.TaggedToFramed.taggedPair\n                          Counting.WitnessMachines.TaggedToFramed.framedPair\n                          (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          Counting.WitnessMachines.TaggedToFramed.polyTime))))))\n              (@List.map.{0, 0} Bool\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                        Counting.WitnessMachines.TaggedToFramed.framedPair)\n                      (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                        Counting.WitnessMachines.TaggedToFramed.taggedPair\n                        Counting.WitnessMachines.TaggedToFramed.framedPair\n                        (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        Counting.WitnessMachines.TaggedToFramed.polyTime)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag\n                          Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                          Counting.WitnessMachines.TaggedToFramed.framedPair)\n                        (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                          (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                          Counting.WitnessMachines.TaggedToFramed.taggedPair\n                          Counting.WitnessMachines.TaggedToFramed.framedPair\n                          (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          Counting.WitnessMachines.TaggedToFramed.polyTime)))))\n                (@Equiv.invFun.{1, 1}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag\n                          Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                          Counting.WitnessMachines.TaggedToFramed.framedPair)\n                        (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                          (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                          Counting.WitnessMachines.TaggedToFramed.taggedPair\n                          Counting.WitnessMachines.TaggedToFramed.framedPair\n                          (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          Counting.WitnessMachines.TaggedToFramed.polyTime)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                          (@Computability.Encoding.encode.{0, 0}\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            Counting.WitnessMachines.TaggedToFramed.Tag\n                            Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                          (@Computability.Encoding.encode.{0, 0}\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                            Counting.WitnessMachines.TaggedToFramed.framedPair)\n                          (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                            (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                            Counting.WitnessMachines.TaggedToFramed.taggedPair\n                            Counting.WitnessMachines.TaggedToFramed.framedPair\n                            (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                            Counting.WitnessMachines.TaggedToFramed.polyTime)))))\n                  Bool\n                  (@Turing.TM2ComputableAux.outputAlphabet Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                        Counting.WitnessMachines.TaggedToFramed.framedPair)\n                      (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                        Counting.WitnessMachines.TaggedToFramed.taggedPair\n                        Counting.WitnessMachines.TaggedToFramed.framedPair\n                        (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        Counting.WitnessMachines.TaggedToFramed.polyTime))))\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  Bool Counting.WitnessMachines.TaggedToFramed.framedPair\n                  (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) p)))))\n          (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n            (Turing.FinTM2.Cfg\n              (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                  (@Computability.Encoding.encode.{0, 0}\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                  (@Computability.Encoding.encode.{0, 0}\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                    Counting.WitnessMachines.TaggedToFramed.framedPair)\n                  (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                    Counting.WitnessMachines.TaggedToFramed.taggedPair\n                    Counting.WitnessMachines.TaggedToFramed.framedPair\n                    (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                    Counting.WitnessMachines.TaggedToFramed.polyTime))))\n            (Turing.FinTM2.step\n              (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                  (@Computability.Encoding.encode.{0, 0}\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                  (@Computability.Encoding.encode.{0, 0}\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                    Counting.WitnessMachines.TaggedToFramed.framedPair)\n                  (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                    Counting.WitnessMachines.TaggedToFramed.taggedPair\n                    Counting.WitnessMachines.TaggedToFramed.framedPair\n                    (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                    Counting.WitnessMachines.TaggedToFramed.polyTime))))\n            (Turing.initList\n              (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                  (@Computability.Encoding.encode.{0, 0}\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                  (@Computability.Encoding.encode.{0, 0}\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                    Counting.WitnessMachines.TaggedToFramed.framedPair)\n                  (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                    Counting.WitnessMachines.TaggedToFramed.taggedPair\n                    Counting.WitnessMachines.TaggedToFramed.framedPair\n                    (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                    Counting.WitnessMachines.TaggedToFramed.polyTime)))\n              (@List.map.{0, 0} Counting.WitnessMachines.TaggedToFramed.Tag\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                        Counting.WitnessMachines.TaggedToFramed.framedPair)\n                      (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                        Counting.WitnessMachines.TaggedToFramed.taggedPair\n                        Counting.WitnessMachines.TaggedToFramed.framedPair\n                        (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        Counting.WitnessMachines.TaggedToFramed.polyTime)))\n                  (Turing.FinTM2.k₀\n                    (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag\n                          Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                          Counting.WitnessMachines.TaggedToFramed.framedPair)\n                        (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                          (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                          Counting.WitnessMachines.TaggedToFramed.taggedPair\n                          Counting.WitnessMachines.TaggedToFramed.framedPair\n                          (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          Counting.WitnessMachines.TaggedToFramed.polyTime)))))\n                (@Equiv.invFun.{1, 1}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag\n                          Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                          Counting.WitnessMachines.TaggedToFramed.framedPair)\n                        (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                          (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                          Counting.WitnessMachines.TaggedToFramed.taggedPair\n                          Counting.WitnessMachines.TaggedToFramed.framedPair\n                          (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          Counting.WitnessMachines.TaggedToFramed.polyTime)))\n                    (Turing.FinTM2.k₀\n                      (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                          (@Computability.Encoding.encode.{0, 0}\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            Counting.WitnessMachines.TaggedToFramed.Tag\n                            Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                          (@Computability.Encoding.encode.{0, 0}\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                            Counting.WitnessMachines.TaggedToFramed.framedPair)\n                          (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                            (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                            Counting.WitnessMachines.TaggedToFramed.taggedPair\n                            Counting.WitnessMachines.TaggedToFramed.framedPair\n                            (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                            Counting.WitnessMachines.TaggedToFramed.polyTime)))))\n                  Counting.WitnessMachines.TaggedToFramed.Tag\n                  (@Turing.TM2ComputableAux.inputAlphabet Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                        Counting.WitnessMachines.TaggedToFramed.framedPair)\n                      (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                        Counting.WitnessMachines.TaggedToFramed.taggedPair\n                        Counting.WitnessMachines.TaggedToFramed.framedPair\n                        (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        Counting.WitnessMachines.TaggedToFramed.polyTime))))\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair p)))\n            (@Option.map.{0, 0}\n              (List.{0}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                      (@Computability.Encoding.encode.{0, 0}\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                        Counting.WitnessMachines.TaggedToFramed.framedPair)\n                      (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                        Counting.WitnessMachines.TaggedToFramed.taggedPair\n                        Counting.WitnessMachines.TaggedToFramed.framedPair\n                        (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        Counting.WitnessMachines.TaggedToFramed.polyTime)))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag\n                          Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                          Counting.WitnessMachines.TaggedToFramed.framedPair)\n                        (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                          (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                          Counting.WitnessMachines.TaggedToFramed.taggedPair\n                          Counting.WitnessMachines.TaggedToFramed.framedPair\n                          (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          Counting.WitnessMachines.TaggedToFramed.polyTime))))))\n              (Turing.FinTM2.Cfg\n                (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                      Counting.WitnessMachines.TaggedToFramed.framedPair)\n                    (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                      Counting.WitnessMachines.TaggedToFramed.taggedPair\n                      Counting.WitnessMachines.TaggedToFramed.framedPair\n                      (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                      Counting.WitnessMachines.TaggedToFramed.polyTime))))\n              (Turing.haltList\n                (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                    Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                    (@Computability.Encoding.encode.{0, 0}\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                      Counting.WitnessMachines.TaggedToFramed.framedPair)\n                    (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                      Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                      Counting.WitnessMachines.TaggedToFramed.taggedPair\n                      Counting.WitnessMachines.TaggedToFramed.framedPair\n                      (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                      Counting.WitnessMachines.TaggedToFramed.polyTime))))\n              (@Option.some.{0}\n                (List.{0}\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag\n                          Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                          Counting.WitnessMachines.TaggedToFramed.framedPair)\n                        (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                          (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                          Counting.WitnessMachines.TaggedToFramed.taggedPair\n                          Counting.WitnessMachines.TaggedToFramed.framedPair\n                          (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          Counting.WitnessMachines.TaggedToFramed.polyTime)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                          (@Computability.Encoding.encode.{0, 0}\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            Counting.WitnessMachines.TaggedToFramed.Tag\n                            Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                          (@Computability.Encoding.encode.{0, 0}\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                            Counting.WitnessMachines.TaggedToFramed.framedPair)\n                          (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                            (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                            Counting.WitnessMachines.TaggedToFramed.taggedPair\n                            Counting.WitnessMachines.TaggedToFramed.framedPair\n                            (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                            Counting.WitnessMachines.TaggedToFramed.polyTime))))))\n                (@List.map.{0, 0} Bool\n                  (Turing.FinTM2.Γ\n                    (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag\n                          Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                          Counting.WitnessMachines.TaggedToFramed.framedPair)\n                        (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                          (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                          Counting.WitnessMachines.TaggedToFramed.taggedPair\n                          Counting.WitnessMachines.TaggedToFramed.framedPair\n                          (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          Counting.WitnessMachines.TaggedToFramed.polyTime)))\n                    (Turing.FinTM2.k₁\n                      (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                          (@Computability.Encoding.encode.{0, 0}\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            Counting.WitnessMachines.TaggedToFramed.Tag\n                            Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                          (@Computability.Encoding.encode.{0, 0}\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                            Counting.WitnessMachines.TaggedToFramed.framedPair)\n                          (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                            (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                            Counting.WitnessMachines.TaggedToFramed.taggedPair\n                            Counting.WitnessMachines.TaggedToFramed.framedPair\n                            (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                            Counting.WitnessMachines.TaggedToFramed.polyTime)))))\n                  (@Equiv.invFun.{1, 1}\n                    (Turing.FinTM2.Γ\n                      (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                          (@Computability.Encoding.encode.{0, 0}\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            Counting.WitnessMachines.TaggedToFramed.Tag\n                            Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                          (@Computability.Encoding.encode.{0, 0}\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                            Counting.WitnessMachines.TaggedToFramed.framedPair)\n                          (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                            (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                            Counting.WitnessMachines.TaggedToFramed.taggedPair\n                            Counting.WitnessMachines.TaggedToFramed.framedPair\n                            (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                            Counting.WitnessMachines.TaggedToFramed.polyTime)))\n                      (Turing.FinTM2.k₁\n                        (@Turing.TM2ComputableAux.tm Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                            Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                            (@Computability.Encoding.encode.{0, 0}\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              Counting.WitnessMachines.TaggedToFramed.Tag\n                              Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                            (@Computability.Encoding.encode.{0, 0}\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                              Counting.WitnessMachines.TaggedToFramed.framedPair)\n                            (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                              Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                              (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                              Counting.WitnessMachines.TaggedToFramed.taggedPair\n                              Counting.WitnessMachines.TaggedToFramed.framedPair\n                              (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                              Counting.WitnessMachines.TaggedToFramed.polyTime)))))\n                    Bool\n                    (@Turing.TM2ComputableAux.outputAlphabet Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                        Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag\n                          Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                        (@Computability.Encoding.encode.{0, 0}\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                          Counting.WitnessMachines.TaggedToFramed.framedPair)\n                        (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                          Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                          (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                          Counting.WitnessMachines.TaggedToFramed.taggedPair\n                          Counting.WitnessMachines.TaggedToFramed.framedPair\n                          (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                          Counting.WitnessMachines.TaggedToFramed.polyTime))))\n                  (@Computability.Encoding.encode.{0, 0}\n                    (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) Bool\n                    Counting.WitnessMachines.TaggedToFramed.framedPair\n                    (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits) p)))))\n            (@Polynomial.eval.{0} Nat Nat.instSemiring\n              (@List.length.{0} Counting.WitnessMachines.TaggedToFramed.Tag\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair p))\n              (@Turing.TM2ComputableInPolyTime.time (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  Bool Counting.WitnessMachines.TaggedToFramed.framedPair)\n                (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                  Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                  Counting.WitnessMachines.TaggedToFramed.taggedPair Counting.WitnessMachines.TaggedToFramed.framedPair\n                  (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                  Counting.WitnessMachines.TaggedToFramed.polyTime)))\n            (@Turing.TM2ComputableInPolyTime.outputsFun\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n              Counting.WitnessMachines.TaggedToFramed.Tag Bool\n              (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                Counting.WitnessMachines.TaggedToFramed.Tag Counting.WitnessMachines.TaggedToFramed.taggedPair)\n              (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                Bool Counting.WitnessMachines.TaggedToFramed.framedPair)\n              (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits)\n                Counting.WitnessMachines.TaggedToFramed.Tag Bool\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype) Bool.fintype\n                Counting.WitnessMachines.TaggedToFramed.taggedPair Counting.WitnessMachines.TaggedToFramed.framedPair\n                (@id.{1} (Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits))\n                Counting.WitnessMachines.TaggedToFramed.polyTime)\n              p)))))"},{"category":"tools","display_name":"Counting.SharpPClosure.verifier_time_bound","family":"sharpp","import":"Counting.SharpPClosure","kind":"theorem","module":"Counting.SharpPClosure.Transport","name":"Counting.SharpPClosure.verifier_time_bound","name_semantics":"actual named kernel declaration","readable_type":"∀ {f g : PlanarHom.Complexity.Bits → Nat}\n  (r :\n    Counting.Complexity.ParsimoniousReduction (Computability.encodingList Bool) (Computability.encodingList Bool) f g)\n  (w : Counting.Complexity.SharpPWitness (Computability.encodingList Bool) g)\n  (p : Prod PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits),\n  instLENat.le ((Counting.SharpPClosure.verifier r w).outputsFun p).steps\n    (Polynomial.eval (instHAdd.hAdd (List.length p.fst) (List.length p.snd)) (Counting.SharpPClosure.verifier r w).time)","role":"public","source_line":95,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Transport.lean","source_sha256":"b95d8080c5ba03fb5e1df4368647a430e3648ae4c715ce91b856c398f5bab3fc","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Transport.lean#L95","type":"∀ {f g : PlanarHom.Complexity.Bits → Nat}\n  (r :\n    @Counting.Complexity.ParsimoniousReduction (List.{0} Bool) (List.{0} Bool) Bool Bool Bool.fintype Bool.fintype\n      (Computability.encodingList Bool) (Computability.encodingList Bool) f g)\n  (w : @Counting.Complexity.SharpPWitness (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool) g)\n  (p : Prod.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits),\n  @LE.le.{0} Nat instLENat\n    (@StateTransition.EvalsTo.steps.{0}\n      (Turing.FinTM2.Cfg\n        (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n            (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool)))\n            (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n              (Holant.Complexity.taggedBoolEncoding Bool))\n            (@Counting.SharpPClosure.transportAccept f g r w)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool))\n              (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n              (@Counting.SharpPClosure.verifier f g r w)))))\n      (Turing.FinTM2.step\n        (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n            (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool)))\n            (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n              (Holant.Complexity.taggedBoolEncoding Bool))\n            (@Counting.SharpPClosure.transportAccept f g r w)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool))\n              (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n              (@Counting.SharpPClosure.verifier f g r w)))))\n      (Turing.initList\n        (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n          (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n            (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool)))\n            (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n              (Holant.Complexity.taggedBoolEncoding Bool))\n            (@Counting.SharpPClosure.transportAccept f g r w)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool))\n              (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n              (@Counting.SharpPClosure.verifier f g r w))))\n        (@List.map.{0, 0} (Sum.{0, 0} Bool Bool)\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  (Sum.{0, 0} Bool Bool)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@Counting.SharpPClosure.transportAccept f g r w)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool))\n                  (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Counting.SharpPClosure.verifier f g r w))))\n            (Turing.FinTM2.k₀\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Counting.SharpPClosure.verifier f g r w))))))\n          (@Equiv.invFun.{1, 1}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Counting.SharpPClosure.verifier f g r w))))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Counting.SharpPClosure.verifier f g r w))))))\n            (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableAux.inputAlphabet (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  (Sum.{0, 0} Bool Bool)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@Counting.SharpPClosure.transportAccept f g r w)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool))\n                  (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Counting.SharpPClosure.verifier f g r w)))))\n          (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n            (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n              (Computability.encodingList Bool) (Computability.encodingList Bool))\n            p)))\n      (@Option.map.{0, 0}\n        (List.{0}\n          (Turing.FinTM2.Γ\n            (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  (Sum.{0, 0} Bool Bool)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@Counting.SharpPClosure.transportAccept f g r w)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool))\n                  (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Counting.SharpPClosure.verifier f g r w))))\n            (Turing.FinTM2.k₁\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Counting.SharpPClosure.verifier f g r w)))))))\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                (Sum.{0, 0} Bool Bool)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool)))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool))\n              (@Counting.SharpPClosure.transportAccept f g r w)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool))\n                (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                (@Counting.SharpPClosure.verifier f g r w)))))\n        (Turing.haltList\n          (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                (Sum.{0, 0} Bool Bool)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool)))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool))\n              (@Counting.SharpPClosure.transportAccept f g r w)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool))\n                (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                (@Counting.SharpPClosure.verifier f g r w)))))\n        (@Option.some.{0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Counting.SharpPClosure.verifier f g r w))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Counting.SharpPClosure.verifier f g r w)))))))\n          (@List.map.{0, 0} (Sum.{0, 0} Bool Bool)\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Counting.SharpPClosure.verifier f g r w))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Counting.SharpPClosure.verifier f g r w))))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Counting.SharpPClosure.verifier f g r w))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                        (Sum.{0, 0} Bool Bool)\n                        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool))\n                      (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (Computability.encodingList Bool) (Computability.encodingList Bool))\n                        (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                        (@Counting.SharpPClosure.verifier f g r w))))))\n              (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableAux.outputAlphabet (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Counting.SharpPClosure.verifier f g r w)))))\n            (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n              (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w p)))))\n      (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n        (Turing.FinTM2.Cfg\n          (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                (Sum.{0, 0} Bool Bool)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool)))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool))\n              (@Counting.SharpPClosure.transportAccept f g r w)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool))\n                (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                (@Counting.SharpPClosure.verifier f g r w)))))\n        (Turing.FinTM2.step\n          (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                (Sum.{0, 0} Bool Bool)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool)))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool))\n              (@Counting.SharpPClosure.transportAccept f g r w)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool))\n                (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                (@Counting.SharpPClosure.verifier f g r w)))))\n        (Turing.initList\n          (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                (Sum.{0, 0} Bool Bool)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool)))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool))\n              (@Counting.SharpPClosure.transportAccept f g r w)\n              (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                  (Computability.encodingList Bool) (Computability.encodingList Bool))\n                (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                (@Counting.SharpPClosure.verifier f g r w))))\n          (@List.map.{0, 0} (Sum.{0, 0} Bool Bool)\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Counting.SharpPClosure.verifier f g r w))))\n              (Turing.FinTM2.k₀\n                (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Counting.SharpPClosure.verifier f g r w))))))\n            (@Equiv.invFun.{1, 1}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Counting.SharpPClosure.verifier f g r w))))\n                (Turing.FinTM2.k₀\n                  (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                        (Sum.{0, 0} Bool Bool)\n                        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool))\n                      (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (Computability.encodingList Bool) (Computability.encodingList Bool))\n                        (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                        (@Counting.SharpPClosure.verifier f g r w))))))\n              (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableAux.inputAlphabet (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Counting.SharpPClosure.verifier f g r w)))))\n            (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool))\n              p)))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                  (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    (Sum.{0, 0} Bool Bool)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                  (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                    (Holant.Complexity.taggedBoolEncoding Bool))\n                  (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                    Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                    (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                      (Computability.encodingList Bool) (Computability.encodingList Bool))\n                    (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Counting.SharpPClosure.verifier f g r w))))\n              (Turing.FinTM2.k₁\n                (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Counting.SharpPClosure.verifier f g r w)))))))\n          (Turing.FinTM2.Cfg\n            (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  (Sum.{0, 0} Bool Bool)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@Counting.SharpPClosure.transportAccept f g r w)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool))\n                  (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Counting.SharpPClosure.verifier f g r w)))))\n          (Turing.haltList\n            (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n              (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  (Sum.{0, 0} Bool Bool)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                  (Holant.Complexity.taggedBoolEncoding Bool))\n                (@Counting.SharpPClosure.transportAccept f g r w)\n                (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                  Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                  (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                    (Computability.encodingList Bool) (Computability.encodingList Bool))\n                  (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                  (@Counting.SharpPClosure.verifier f g r w)))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Counting.SharpPClosure.verifier f g r w))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                        (Sum.{0, 0} Bool Bool)\n                        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool))\n                      (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (Computability.encodingList Bool) (Computability.encodingList Bool))\n                        (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                        (@Counting.SharpPClosure.verifier f g r w)))))))\n            (@List.map.{0, 0} (Sum.{0, 0} Bool Bool)\n              (Turing.FinTM2.Γ\n                (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Counting.SharpPClosure.verifier f g r w))))\n                (Turing.FinTM2.k₁\n                  (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                        (Sum.{0, 0} Bool Bool)\n                        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool))\n                      (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (Computability.encodingList Bool) (Computability.encodingList Bool))\n                        (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                        (@Counting.SharpPClosure.verifier f g r w))))))\n              (@Equiv.invFun.{1, 1}\n                (Turing.FinTM2.Γ\n                  (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                        (Sum.{0, 0} Bool Bool)\n                        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                      (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                        (Holant.Complexity.taggedBoolEncoding Bool))\n                      (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                        (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                        (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                          (Computability.encodingList Bool) (Computability.encodingList Bool))\n                        (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                        (@Counting.SharpPClosure.verifier f g r w))))\n                  (Turing.FinTM2.k₁\n                    (@Turing.TM2ComputableAux.tm (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                        Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                        (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                          (Sum.{0, 0} Bool Bool)\n                          (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                        (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                          (Holant.Complexity.taggedBoolEncoding Bool))\n                        (@Counting.SharpPClosure.transportAccept f g r w)\n                        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime\n                          (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool (Sum.{0, 0} Bool Bool)\n                          (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                          (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                          (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                            (Computability.encodingList Bool) (Computability.encodingList Bool))\n                          (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                          (@Counting.SharpPClosure.verifier f g r w))))))\n                (Sum.{0, 0} Bool Bool)\n                (@Turing.TM2ComputableAux.outputAlphabet (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                  (@Turing.TM2ComputableInPolyTime.toTM2ComputableAux (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n                    (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                    (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      (Sum.{0, 0} Bool Bool)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool)))\n                    (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                      (Holant.Complexity.taggedBoolEncoding Bool))\n                    (@Counting.SharpPClosure.transportAccept f g r w)\n                    (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool))\n                      Bool (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n                      (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                        (Computability.encodingList Bool) (Computability.encodingList Bool))\n                      (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n                      (@Counting.SharpPClosure.verifier f g r w)))))\n              (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n                (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w p)))))\n        (@Polynomial.eval.{0} Nat Nat.instSemiring\n          (@List.length.{0} (Sum.{0, 0} Bool Bool)\n            (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool))\n              p))\n          (@Turing.TM2ComputableInPolyTime.time (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n            (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n            (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool)))\n            (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n              (Holant.Complexity.taggedBoolEncoding Bool))\n            (@Counting.SharpPClosure.transportAccept f g r w)\n            (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n              (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n              (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n                (Computability.encodingList Bool) (Computability.encodingList Bool))\n              (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n              (@Counting.SharpPClosure.verifier f g r w))))\n        (@Turing.TM2ComputableInPolyTime.outputsFun (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n          (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool)\n          (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n            (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n              (Computability.encodingList Bool) (Computability.encodingList Bool)))\n          (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool)\n            (Holant.Complexity.taggedBoolEncoding Bool))\n          (@Counting.SharpPClosure.transportAccept f g r w)\n          (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n            (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n            (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n            (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n              (Computability.encodingList Bool) (Computability.encodingList Bool))\n            (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n            (@Counting.SharpPClosure.verifier f g r w))\n          p)))\n    (@Polynomial.eval.{0} Nat Nat.instSemiring\n      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n        (@List.length.{0} Bool (@Prod.fst.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p))\n        (@List.length.{0} Bool (@Prod.snd.{0, 0} PlanarHom.Complexity.Bits PlanarHom.Complexity.Bits p)))\n      (@Turing.TM2ComputableInPolyTime.time (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool (Sum.{0, 0} Bool Bool)\n        (Sum.{0, 0} Bool Bool)\n        (@Computability.Encoding.encode.{0, 0} (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) (Sum.{0, 0} Bool Bool)\n          (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n            (Computability.encodingList Bool) (Computability.encodingList Bool)))\n        (@Computability.Encoding.encode.{0, 0} Bool (Sum.{0, 0} Bool Bool) (Holant.Complexity.taggedBoolEncoding Bool))\n        (@Counting.SharpPClosure.transportAccept f g r w)\n        (@Holant.Complexity.PolyTime.toTM2ComputableInPolyTime (Prod.{0, 0} (List.{0} Bool) (List.{0} Bool)) Bool\n          (Sum.{0, 0} Bool Bool) (Sum.{0, 0} Bool Bool) (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n          (@instFintypeSum.{0, 0} Bool Bool Bool.fintype Bool.fintype)\n          (@Computability.encodingProd.{0, 0, 0, 0} (List.{0} Bool) (List.{0} Bool) Bool Bool\n            (Computability.encodingList Bool) (Computability.encodingList Bool))\n          (Holant.Complexity.taggedBoolEncoding Bool) (@Counting.SharpPClosure.transportAccept f g r w)\n          (@Counting.SharpPClosure.verifier f g r w))))"},{"category":"tools","display_name":"Counting.SharpPClosure.witnessCount_paddedAccept","family":"sharpp","import":"Counting.SharpPClosure.Basic","kind":"theorem","module":"Counting.SharpPClosure.Basic","name":"Counting.SharpPClosure.witnessCount_paddedAccept","name_semantics":"actual named kernel declaration","readable_type":"∀ (n N : Nat),\n  instLENat.le n N →\n    ∀ (accept : List Bool → Bool),\n      Eq (Counting.Foundation.witnessCount N (Counting.SharpPClosure.paddedAccept n accept))\n        (Counting.Foundation.witnessCount n accept)","role":"public","source_line":54,"source_path":"projects/sharpp-closure/Counting/SharpPClosure/Basic.lean","source_sha256":"b5344fa91792f24c177f6dd9dc23024f7cc810d4d892c2c678ce3977f7ff96e2","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/sharpp-closure/Counting/SharpPClosure/Basic.lean#L54","type":"∀ (n N : Nat) (h : @LE.le.{0} Nat instLENat n N) (accept : List.{0} Bool → Bool),\n  @Eq.{1} Nat (Counting.Foundation.witnessCount N (Counting.SharpPClosure.paddedAccept n accept))\n    (Counting.Foundation.witnessCount n accept)"},{"category":"tools","display_name":"Holant.Complexity.FixedGadgetSubstitution.Compiler.computes","family":"gadget","import":"Counting.Reduction.FixedGadget.Machine","kind":"definition","module":"Holant.Complexity.FixedGadgetSubstitution.Compiler.Compile","name":"Holant.Complexity.FixedGadgetSubstitution.Compiler.computes","name_semantics":"actual named kernel declaration","readable_type":"(sourceCount b : Nat) →\n  (sourceArity : Nat → Nat) →\n    (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) →\n      (s : Nat) →\n        (arity : Nat → Nat) →\n          (hg :\n              ∀ (label : Nat),\n                instLTNat.lt label sourceCount →\n                  And (Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates label))\n                    (Eq (templates label).boundary (sourceArity label))) →\n            Holant.Complexity.BinaryCompose.Computes\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n              (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s arity hg)","role":"canonical","source_line":75,"source_path":"projects/holant-unified/Holant/Complexity/FixedGadgetSubstitution/Compiler/Compile.lean","source_sha256":"ee1438a1e895d836bfcad97ee253bb2de2f675e917b6eecc920bc5d753027741","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Holant/Complexity/FixedGadgetSubstitution/Compiler/Compile.lean#L75","type":"(sourceCount b : Nat) →\n  (sourceArity : Nat → Nat) →\n    (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) →\n      (s : Nat) →\n        (arity : Nat → Nat) →\n          (hg :\n              ∀ (label : Nat),\n                @LT.lt.{0} Nat instLTNat label sourceCount →\n                  And (Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates label))\n                    (@Eq.{1} Nat (Holant.Complexity.FixedGadgetSubstitution.Template.boundary (templates label))\n                      (sourceArity label))) →\n            @Holant.Complexity.BinaryCompose.Computes\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n              (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s arity hg)"},{"category":"tools","display_name":"Holant.Complexity.FixedGadgetSubstitution.Compiler.primitive_bound","family":"gadget","import":"Counting.Reduction.FixedGadget.Machine","kind":"theorem","module":"Holant.Complexity.FixedGadgetSubstitution.Compiler.Compile","name":"Holant.Complexity.FixedGadgetSubstitution.Compiler.primitive_bound","name_semantics":"actual named kernel declaration","readable_type":"∀ (sourceCount b : Nat) (sourceArity : Nat → Nat) (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (s : Nat) (arity : Nat → Nat)\n  (hg :\n    ∀ (label : Nat),\n      instLTNat.lt label sourceCount →\n        And (Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates label))\n          (Eq (templates label).boundary (sourceArity label)))\n  (r : Holant.Complexity.FixedGadgetSubstitution.Compiler.Input sourceCount b sourceArity),\n  instLENat.le\n    (Holant.Complexity.FixedFieldMachines.primitiveCost\n      (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s arity\n          hg).machine\n      ((Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s arity\n              hg).outputs\n          r).steps\n      (Option.some\n        (Turing.initList\n          (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s arity\n                hg).machine.computer\n          ((Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity).encode r))))\n    (Polynomial.eval ((Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity).encode r).length\n      (Holant.Complexity.FixedFieldMachines.primitivePolynomial\n        (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s arity hg)))","role":"canonical","source_line":93,"source_path":"projects/holant-unified/Holant/Complexity/FixedGadgetSubstitution/Compiler/Compile.lean","source_sha256":"ee1438a1e895d836bfcad97ee253bb2de2f675e917b6eecc920bc5d753027741","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Holant/Complexity/FixedGadgetSubstitution/Compiler/Compile.lean#L93","type":"∀ (sourceCount b : Nat) (sourceArity : Nat → Nat) (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template)\n  (s : Nat) (arity : Nat → Nat)\n  (hg :\n    ∀ (label : Nat),\n      @LT.lt.{0} Nat instLTNat label sourceCount →\n        And (Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates label))\n          (@Eq.{1} Nat (Holant.Complexity.FixedGadgetSubstitution.Template.boundary (templates label))\n            (sourceArity label)))\n  (r : Holant.Complexity.FixedGadgetSubstitution.Compiler.Input sourceCount b sourceArity),\n  @LE.le.{0} Nat instLENat\n    (Holant.Complexity.FixedFieldMachines.primitiveCost\n      (@Holant.Complexity.BinaryCompose.Computes.machine\n        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n          Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n          Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n        (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n        (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n        (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s arity hg)\n        (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s arity hg))\n      (@StateTransition.EvalsTo.steps.{0}\n        (Turing.FinTM2.Cfg\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n              (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s arity hg)\n              (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s arity\n                hg))))\n        (Turing.FinTM2.step\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n              (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s arity hg)\n              (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s arity\n                hg))))\n        (Turing.initList\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n              (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s arity hg)\n              (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s arity\n                hg)))\n          (@Computability.Encoding.encode.{0, 0}\n            (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n            Bool (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity) r))\n        (@Option.map.{0, 0}\n          (List.{0}\n            (Turing.FinTM2.Γ\n              (Holant.Complexity.BinaryCompose.Machine.computer\n                (@Holant.Complexity.BinaryCompose.Computes.machine\n                  (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n                  (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                  (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n                  (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                  (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s arity\n                    hg)\n                  (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s\n                    arity hg)))\n              (Turing.FinTM2.k₁\n                (Holant.Complexity.BinaryCompose.Machine.computer\n                  (@Holant.Complexity.BinaryCompose.Computes.machine\n                    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n                    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n                    (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                    (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s\n                      arity hg)\n                    (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s\n                      arity hg))))))\n          (Turing.FinTM2.Cfg\n            (Holant.Complexity.BinaryCompose.Machine.computer\n              (@Holant.Complexity.BinaryCompose.Computes.machine\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n                (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s arity\n                  hg)\n                (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s arity\n                  hg))))\n          (Turing.haltList\n            (Holant.Complexity.BinaryCompose.Machine.computer\n              (@Holant.Complexity.BinaryCompose.Computes.machine\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n                (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s arity\n                  hg)\n                (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s arity\n                  hg))))\n          (@Option.some.{0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (Holant.Complexity.BinaryCompose.Machine.computer\n                  (@Holant.Complexity.BinaryCompose.Computes.machine\n                    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n                    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n                    (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                    (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s\n                      arity hg)\n                    (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s\n                      arity hg)))\n                (Turing.FinTM2.k₁\n                  (Holant.Complexity.BinaryCompose.Machine.computer\n                    (@Holant.Complexity.BinaryCompose.Computes.machine\n                      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n                      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                      (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n                      (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                      (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s\n                        arity hg)\n                      (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s\n                        arity hg))))))\n            (@Computability.Encoding.encode.{0, 0}\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n              Bool (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n              (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s arity hg\n                r))))\n        (@StateTransition.EvalsToInTime.toEvalsTo.{0}\n          (Turing.FinTM2.Cfg\n            (Holant.Complexity.BinaryCompose.Machine.computer\n              (@Holant.Complexity.BinaryCompose.Computes.machine\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n                (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s arity\n                  hg)\n                (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s arity\n                  hg))))\n          (Turing.FinTM2.step\n            (Holant.Complexity.BinaryCompose.Machine.computer\n              (@Holant.Complexity.BinaryCompose.Computes.machine\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n                (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s arity\n                  hg)\n                (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s arity\n                  hg))))\n          (Turing.initList\n            (Holant.Complexity.BinaryCompose.Machine.computer\n              (@Holant.Complexity.BinaryCompose.Computes.machine\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n                (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s arity\n                  hg)\n                (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s arity\n                  hg)))\n            (@Computability.Encoding.encode.{0, 0}\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n              Bool (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity) r))\n          (@Option.map.{0, 0}\n            (List.{0}\n              (Turing.FinTM2.Γ\n                (Holant.Complexity.BinaryCompose.Machine.computer\n                  (@Holant.Complexity.BinaryCompose.Computes.machine\n                    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n                    (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                      Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                    (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n                    (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                    (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s\n                      arity hg)\n                    (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s\n                      arity hg)))\n                (Turing.FinTM2.k₁\n                  (Holant.Complexity.BinaryCompose.Machine.computer\n                    (@Holant.Complexity.BinaryCompose.Computes.machine\n                      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n                      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                      (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n                      (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                      (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s\n                        arity hg)\n                      (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s\n                        arity hg))))))\n            (Turing.FinTM2.Cfg\n              (Holant.Complexity.BinaryCompose.Machine.computer\n                (@Holant.Complexity.BinaryCompose.Computes.machine\n                  (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n                  (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                  (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n                  (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                  (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s arity\n                    hg)\n                  (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s\n                    arity hg))))\n            (Turing.haltList\n              (Holant.Complexity.BinaryCompose.Machine.computer\n                (@Holant.Complexity.BinaryCompose.Computes.machine\n                  (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n                  (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                  (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n                  (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                  (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s arity\n                    hg)\n                  (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s\n                    arity hg))))\n            (@Option.some.{0}\n              (List.{0}\n                (Turing.FinTM2.Γ\n                  (Holant.Complexity.BinaryCompose.Machine.computer\n                    (@Holant.Complexity.BinaryCompose.Computes.machine\n                      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n                      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                        Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                      (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n                      (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                      (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s\n                        arity hg)\n                      (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s\n                        arity hg)))\n                  (Turing.FinTM2.k₁\n                    (Holant.Complexity.BinaryCompose.Machine.computer\n                      (@Holant.Complexity.BinaryCompose.Computes.machine\n                        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                          Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n                        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                          Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                        (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n                        (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                        (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s\n                          arity hg)\n                        (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates\n                          s arity hg))))))\n              (@Computability.Encoding.encode.{0, 0}\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n                Bool (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n                (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s arity hg\n                  r))))\n          (@Polynomial.eval.{0} Nat Nat.instSemiring\n            (@List.length.{0} Bool\n              (@Computability.Encoding.encode.{0, 0}\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n                Bool (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity) r))\n            (@Holant.Complexity.BinaryCompose.Computes.time\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n              (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s arity hg)\n              (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s arity\n                hg)))\n          (@Holant.Complexity.BinaryCompose.Computes.outputs\n            (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n            (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n              Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n            (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n            (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n            (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s arity hg)\n            (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s arity hg)\n            r)))\n      (@Option.some.{0}\n        (Holant.Complexity.BinaryCompose.Machine.Config\n          (@Holant.Complexity.BinaryCompose.Computes.machine\n            (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n            (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n              Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n            (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n            (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n            (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s arity hg)\n            (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s arity\n              hg)))\n        (Turing.initList\n          (Holant.Complexity.BinaryCompose.Machine.computer\n            (@Holant.Complexity.BinaryCompose.Computes.machine\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n              (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n              (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n              (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s arity hg)\n              (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s arity\n                hg)))\n          (@Computability.Encoding.encode.{0, 0}\n            (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n              Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n            Bool (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity) r))))\n    (@Polynomial.eval.{0} Nat Nat.instSemiring\n      (@List.length.{0} Bool\n        (@Computability.Encoding.encode.{0, 0}\n          (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n            Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n          Bool (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity) r))\n      (@Holant.Complexity.FixedFieldMachines.primitivePolynomial\n        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n          Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n          Holant.Complexity.RawClosedNetwork.WellFormed s b arity r)\n        (Holant.Complexity.RawClosedNetwork.validatedEncoding sourceCount b sourceArity)\n        (Holant.Complexity.RawClosedNetwork.validatedEncoding s b arity)\n        (Holant.Complexity.FixedGadgetSubstitution.Compiler.value sourceCount b sourceArity templates s arity hg)\n        (Holant.Complexity.FixedGadgetSubstitution.Compiler.computes sourceCount b sourceArity templates s arity hg)))"},{"category":"tools","display_name":"Holant.Complexity.FixedGadgetSubstitution.query_wellFormed","family":"gadget","import":"Counting.Reduction.FixedGadget.Machine","kind":"theorem","module":"Holant.Complexity.FixedGadgetSubstitution.Incidence","name":"Holant.Complexity.FixedGadgetSubstitution.query_wellFormed","name_semantics":"actual named kernel declaration","readable_type":"∀ (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) (r : Holant.Complexity.RawClosedNetwork)\n  {sourceCount s b : Nat} {arity : Nat → Nat},\n  Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r →\n    (∀ (label : Nat),\n        instLTNat.lt label sourceCount →\n          Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates label)) →\n      Holant.Complexity.RawClosedNetwork.WellFormed s b arity\n        (Holant.Complexity.FixedGadgetSubstitution.replace templates r)","role":"canonical","source_line":34,"source_path":"projects/holant-unified/Holant/Complexity/FixedGadgetSubstitution/Incidence.lean","source_sha256":"6d046ddbdf88dfc88365b5eb430102bdf498e9a6750cc9fa447e1d656abdb73b","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Holant/Complexity/FixedGadgetSubstitution/Incidence.lean#L34","type":"∀ (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) (r : Holant.Complexity.RawClosedNetwork)\n  {sourceCount s b : Nat} {arity : Nat → Nat}\n  (hr :\n    Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n  (hg :\n    ∀ (label : Nat),\n      @LT.lt.{0} Nat instLTNat label sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates label)),\n  Holant.Complexity.RawClosedNetwork.WellFormed s b arity\n    (Holant.Complexity.FixedGadgetSubstitution.replace templates r)"},{"category":"tools","display_name":"Holant.Complexity.FixedGadgetSubstitution.replace","family":"gadget","import":"Counting.Reduction.FixedGadget.Machine","kind":"definition","module":"Holant.Complexity.FixedGadgetSubstitution.Raw","name":"Holant.Complexity.FixedGadgetSubstitution.replace","name_semantics":"actual named kernel declaration","readable_type":"(Nat → Holant.Complexity.FixedGadgetSubstitution.Template) →\n  Holant.Complexity.RawClosedNetwork → Holant.Complexity.RawClosedNetwork","role":"canonical","source_line":83,"source_path":"projects/holant-unified/Holant/Complexity/FixedGadgetSubstitution/Raw.lean","source_sha256":"0b3fba69f12fc4cf0c278eb4f21557b8710dccb8cb8ded9b6da62a5f3e860e7d","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Holant/Complexity/FixedGadgetSubstitution/Raw.lean#L83","type":"(templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) →\n  (r : Holant.Complexity.RawClosedNetwork) → Holant.Complexity.RawClosedNetwork"},{"category":"tools","display_name":"Holant.Complexity.FixedGadgetSubstitution.replace_length_le","family":"gadget","import":"Counting.Reduction.FixedGadget.Machine","kind":"theorem","module":"Holant.Complexity.FixedGadgetSubstitution.Size","name":"Holant.Complexity.FixedGadgetSubstitution.replace_length_le","name_semantics":"actual named kernel declaration","readable_type":"∀ (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) (r : Holant.Complexity.RawClosedNetwork)\n  {sourceCount s b : Nat} {sourceArity arity : Nat → Nat},\n  Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r →\n    (∀ (label : Nat),\n        instLTNat.lt label sourceCount →\n          And (Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates label))\n            (Eq (templates label).boundary (sourceArity label))) →\n      ∀ (A V E : Nat),\n        (∀ (label : Nat), instLTNat.lt label s → instLENat.le (arity label) A) →\n          (∀ (label : Nat),\n              instLTNat.lt label sourceCount →\n                And (instLENat.le (templates label).vertices.length V)\n                  (instLENat.le (templates label).edges.length E)) →\n            instLENat.le\n              (Holant.Complexity.RawClosedNetwork.encoding.encode\n                  (Holant.Complexity.FixedGadgetSubstitution.replace templates r)).length\n              (Polynomial.eval (Holant.Complexity.RawClosedNetwork.encoding.encode r).length\n                (Holant.Complexity.FixedGadgetSubstitution.querySizePolynomial s b A V E))","role":"canonical","source_line":113,"source_path":"projects/holant-unified/Holant/Complexity/FixedGadgetSubstitution/Size.lean","source_sha256":"321d165fbaea3cd1fbd507357aa5b8b138188f310659cee13ed79214477ee907","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Holant/Complexity/FixedGadgetSubstitution/Size.lean#L113","type":"∀ (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) (r : Holant.Complexity.RawClosedNetwork)\n  {sourceCount s b : Nat} {sourceArity arity : Nat → Nat}\n  (hr : Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b sourceArity r)\n  (hg :\n    ∀ (label : Nat),\n      @LT.lt.{0} Nat instLTNat label sourceCount →\n        And (Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates label))\n          (@Eq.{1} Nat (Holant.Complexity.FixedGadgetSubstitution.Template.boundary (templates label))\n            (sourceArity label)))\n  (A V E : Nat) (ha : ∀ (label : Nat), @LT.lt.{0} Nat instLTNat label s → @LE.le.{0} Nat instLENat (arity label) A)\n  (hb :\n    ∀ (label : Nat),\n      @LT.lt.{0} Nat instLTNat label sourceCount →\n        And\n          (@LE.le.{0} Nat instLENat\n            (@List.length.{0} Holant.Complexity.FixedGadgetSubstitution.LocalVertex\n              (Holant.Complexity.FixedGadgetSubstitution.Template.vertices (templates label)))\n            V)\n          (@LE.le.{0} Nat instLENat\n            (@List.length.{0} Nat (Holant.Complexity.FixedGadgetSubstitution.Template.edges (templates label))) E)),\n  @LE.le.{0} Nat instLENat\n    (@List.length.{0} Bool\n      (@Computability.Encoding.encode.{0, 0} Holant.Complexity.RawClosedNetwork Bool\n        Holant.Complexity.RawClosedNetwork.encoding (Holant.Complexity.FixedGadgetSubstitution.replace templates r)))\n    (@Polynomial.eval.{0} Nat Nat.instSemiring\n      (@List.length.{0} Bool\n        (@Computability.Encoding.encode.{0, 0} Holant.Complexity.RawClosedNetwork Bool\n          Holant.Complexity.RawClosedNetwork.encoding r))\n      (Holant.Complexity.FixedGadgetSubstitution.querySizePolynomial s b A V E))"},{"category":"tools","display_name":"Holant.Complexity.FixedGadgetSubstitution.replacement_partition","family":"gadget","import":"Counting.Reduction.FixedGadget.Machine","kind":"theorem","module":"Holant.Complexity.FixedGadgetSubstitution.Partition","name":"Holant.Complexity.FixedGadgetSubstitution.replacement_partition","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type} [inst : CommSemiring K] {sourceCount s b : Nat} {arity : Nat → Nat}\n  (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) (r : Holant.Complexity.RawClosedNetwork)\n  (hr :\n    Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n  (hg :\n    ∀ (label : Nat),\n      instLTNat.lt label sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates label))\n  (source :\n    (i : Fin sourceCount) → Holant.Signature K (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates i.val))\n  (signatures : (i : Fin s) → Holant.Signature K (arity i.val)) (kernels : Fin b → Bool → Bool → K)\n  (scales : Fin sourceCount → K),\n  (∀ (label : Fin sourceCount),\n      Eq ((templates label.val).network ⋯ signatures kernels).denote (instHSMul.hSMul (scales label) (source label))) →\n    Eq ((Holant.Complexity.RawClosedNetwork.realize ⋯ signatures kernels).denote Fin.elim0)\n      (instHMul.hMul (Finset.univ.prod fun v => scales (Holant.Complexity.RawClosedNetwork.signatureLabel hr v))\n        ((Holant.Complexity.RawClosedNetwork.realize hr source kernels).denote Fin.elim0))","role":"canonical","source_line":21,"source_path":"projects/holant-unified/Holant/Complexity/FixedGadgetSubstitution/Partition.lean","source_sha256":"9b057575e1ca355c759c77d2b7fc669e5239f629e81d2a070c2e00c8da968209","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Holant/Complexity/FixedGadgetSubstitution/Partition.lean#L21","type":"∀ {K : Type} [inst : CommSemiring.{0} K] {sourceCount s b : Nat} {arity : Nat → Nat}\n  (templates : Nat → Holant.Complexity.FixedGadgetSubstitution.Template) (r : Holant.Complexity.RawClosedNetwork)\n  (hr :\n    Holant.Complexity.RawClosedNetwork.WellFormed sourceCount b\n      (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r)\n  (hg :\n    ∀ (label : Nat),\n      @LT.lt.{0} Nat instLTNat label sourceCount →\n        Holant.Complexity.FixedGadgetSubstitution.Template.WellFormed s b arity (templates label))\n  (source :\n    (i : Fin sourceCount) →\n      Holant.Signature.{0} K (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates (@Fin.val sourceCount i)))\n  (signatures : (i : Fin s) → Holant.Signature.{0} K (arity (@Fin.val s i))) (kernels : Fin b → Bool → Bool → K)\n  (scales : Fin sourceCount → K)\n  (hdenote :\n    ∀ (label : Fin sourceCount),\n      @Eq.{1}\n        (Holant.Signature.{0} K\n          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary (templates (@Fin.val sourceCount label))))\n        (@Holant.Network.denote.{0} K inst\n          (Holant.Complexity.FixedGadgetSubstitution.Template.boundary (templates (@Fin.val sourceCount label)))\n          (@Holant.Complexity.FixedGadgetSubstitution.Template.network.{0} s b arity\n            (templates (@Fin.val sourceCount label)) (hg (@Fin.val sourceCount label) (@Fin.isLt sourceCount label)) K\n            signatures kernels))\n        (@HSMul.hSMul.{0, 0, 0} K\n          (Holant.Signature.{0} K\n            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates (@Fin.val sourceCount label)))\n          (Holant.Signature.{0} K\n            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates (@Fin.val sourceCount label)))\n          (@instHSMul.{0, 0} K\n            (Holant.Signature.{0} K\n              (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates (@Fin.val sourceCount label)))\n            (@Function.hasSMul.{0, 0, 0}\n              (Fin (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates (@Fin.val sourceCount label)) →\n                Bool)\n              K K\n              (@instSMulOfMul.{0} K\n                (@Distrib.toMul.{0} K (@instDistribOfSemiring.{0} K (@CommSemiring.toSemiring.{0} K inst))))))\n          (scales label) (source label))),\n  @Eq.{1} K\n    (@Holant.Network.denote.{0} K inst (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n      (@Holant.Complexity.RawClosedNetwork.realize.{0} s b arity\n        (Holant.Complexity.FixedGadgetSubstitution.replace templates r) K\n        (@Holant.Complexity.FixedGadgetSubstitution.query_wellFormed templates r sourceCount s b arity hr hg) signatures\n        kernels)\n      (@Fin.elim0.{1} Bool))\n    (@HMul.hMul.{0, 0, 0} K K K\n      (@instHMul.{0} K (@Distrib.toMul.{0} K (@instDistribOfSemiring.{0} K (@CommSemiring.toSemiring.{0} K inst))))\n      (@Finset.prod.{0, 0}\n        (Fin (@List.length.{0} Holant.Complexity.RawVertex (Holant.Complexity.RawClosedNetwork.vertices r))) K\n        (@CommSemiring.toCommMonoid.{0} K inst)\n        (@Finset.univ.{0}\n          (Fin (@List.length.{0} Holant.Complexity.RawVertex (Holant.Complexity.RawClosedNetwork.vertices r)))\n          (Fin.fintype (@List.length.{0} Holant.Complexity.RawVertex (Holant.Complexity.RawClosedNetwork.vertices r))))\n        fun (v : Fin (@List.length.{0} Holant.Complexity.RawVertex (Holant.Complexity.RawClosedNetwork.vertices r))) =>\n        scales\n          (@Holant.Complexity.RawClosedNetwork.signatureLabel sourceCount b\n            (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r hr v))\n      (@Holant.Network.denote.{0} K inst (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))\n        (@Holant.Complexity.RawClosedNetwork.realize.{0} sourceCount b\n          (Holant.Complexity.FixedGadgetSubstitution.sourceArity templates) r K hr source kernels)\n        (@Fin.elim0.{1} Bool)))"},{"category":"tools","display_name":"Holant.Dihedral.CompatibleClosure.reorderOpen_raw","family":"open","import":"Counting.Bridge.OpenNetwork.Canonical","kind":"theorem","module":"Holant.Dihedral.CompatibleClosure.ActualReindex","name":"Holant.Dihedral.CompatibleClosure.reorderOpen_raw","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type u_1} [inst : CommSemiring K] {n : Nat} (N : Holant.OpenNetwork K n) (p : Equiv.Perm (Fin n)),\n  Eq (Holant.Dihedral.CompatibleClosure.reorderOpen N p).raw (Holant.Tensor.reindex (Equiv.symm p) N.raw)","role":"canonical","source_line":35,"source_path":"projects/holant-unified/Holant/Dihedral/CompatibleClosure/ActualReindex.lean","source_sha256":"b1fc6f61edaf84b1e2db8c81db99d584f6e0c65721656038aff2346157b304ce","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Holant/Dihedral/CompatibleClosure/ActualReindex.lean#L35","type":"∀ {K : Type u_1} [inst : CommSemiring.{u_1} K] {n : Nat} (N : Holant.OpenNetwork.{u_1} K n)\n  (p : Equiv.Perm.{1} (Fin n)),\n  @Eq.{u_1 + 1} (Holant.Signature.{u_1} K n)\n    (@Holant.OpenNetwork.raw.{u_1} K inst n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{u_1} K n N p))\n    (@Holant.Tensor.reindex.{u_1, 0, 0} K (Fin n) (Fin n) (@Equiv.symm.{1, 1} (Fin n) (Fin n) p)\n      (@Holant.OpenNetwork.raw.{u_1} K inst n N))"},{"category":"tools","display_name":"Holant.Dihedral.CompatibleClosure.reorderOpen_tensor","family":"open","import":"Counting.Bridge.OpenNetwork.Canonical","kind":"theorem","module":"Holant.Dihedral.CompatibleClosure.ActualReindex","name":"Holant.Dihedral.CompatibleClosure.reorderOpen_tensor","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type u_1} [inst : CommSemiring K] {n : Nat} (N : Holant.OpenNetwork K n) (p : Equiv.Perm (Fin n)),\n  Eq (Holant.Dihedral.CompatibleClosure.reorderOpen N p).tensor (Holant.Tensor.reindex (Equiv.symm p) N.tensor)","role":"canonical","source_line":67,"source_path":"projects/holant-unified/Holant/Dihedral/CompatibleClosure/ActualReindex.lean","source_sha256":"b1fc6f61edaf84b1e2db8c81db99d584f6e0c65721656038aff2346157b304ce","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Holant/Dihedral/CompatibleClosure/ActualReindex.lean#L67","type":"∀ {K : Type u_1} [inst : CommSemiring.{u_1} K] {n : Nat} (N : Holant.OpenNetwork.{u_1} K n)\n  (p : Equiv.Perm.{1} (Fin n)),\n  @Eq.{u_1 + 1} (Holant.Signature.{u_1} K n)\n    (@Holant.OpenNetwork.tensor.{u_1} K inst n (@Holant.Dihedral.CompatibleClosure.reorderOpen.{u_1} K n N p))\n    (@Holant.Tensor.reindex.{u_1, 0, 0} K (Fin n) (Fin n) (@Equiv.symm.{1, 1} (Fin n) (Fin n) p)\n      (@Holant.OpenNetwork.tensor.{u_1} K inst n N))"},{"category":"tools","display_name":"Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.computes","family":"product","import":"Counting.Algorithm.ProductFinitePalette.Machine","kind":"definition","module":"Holant.Proofs.Tractability.ProductMachine.FiniteLabels","name":"Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.computes","name_semantics":"actual named kernel declaration","readable_type":"(q : Nat) →\n  {K : Type} →\n    [inst : Field K] →\n      [inst_1 : Algebra Rat K] →\n        {d : Nat} →\n          (F : Holant.Algebraic.FixedField K d) →\n            (table : Fin q → Fin d → Rat) →\n              Holant.Complexity.BinaryCompose.Computes\n                (Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.inputEncoding q) F.encoding\n                (Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.answer q F table)","role":"canonical","source_line":182,"source_path":"projects/holant-unified/Holant/Proofs/Tractability/ProductMachine/FiniteLabels.lean","source_sha256":"511389abcc870c533e8cf52196964b48dc4d02b6c311ee26954a23706edf3d1e","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Holant/Proofs/Tractability/ProductMachine/FiniteLabels.lean#L182","type":"(q : Nat) →\n  {K : Type} →\n    [inst : Field.{0} K] →\n      [inst_1 :\n          @Algebra.{0, 0} Rat K Rat.commSemiring\n            (@CommSemiring.toSemiring.{0} K (@Semifield.toCommSemiring.{0} K (@Field.toSemifield.{0} K inst)))] →\n        {d : Nat} →\n          (F : @Holant.Algebraic.FixedField.{0} K inst inst_1 d) →\n            (table : Fin q → Fin d → Rat) →\n              @Holant.Complexity.BinaryCompose.Computes\n                (Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.Input q) K\n                (Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.inputEncoding q)\n                (@Holant.Algebraic.FixedField.encoding.{0} K inst inst_1 d F)\n                (@Holant.LocalDrafts.Tractability.ProductMachine.FiniteLabels.answer q K inst inst_1 d F table)"},{"category":"tools","display_name":"Holant.OpenNetwork.boundaryKernel","family":"open","import":"Counting.Bridge.OpenNetwork.Canonical","kind":"definition","module":"Holant.OpenNetwork","name":"Holant.OpenNetwork.boundaryKernel","name_semantics":"actual named kernel declaration","readable_type":"{K : Type u_1} → [CommSemiring K] → {n : Nat} → Holant.OpenNetwork K n → Fin n → Bool → Bool → K","role":"canonical","source_line":96,"source_path":"projects/holant-unified/Holant/OpenNetwork.lean","source_sha256":"321df01d4ff1bcad2ccf6de8b17592462ca107cf7a4e17267017a845ae1c366f","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Holant/OpenNetwork.lean#L96","specification":"fun {K : Type u_1} [inst : CommSemiring.{u_1} K] {n : Nat} (N : Holant.OpenNetwork.{u_1} K n) (j : Fin n) =>\n  @Holant.OpenNetwork.boundaryKernel.match_1.{u_1, u_1 + 1} K n N\n    (fun\n        (x :\n          Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))\n            (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N))\n            (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N))) =>\n      Bool → Bool → K)\n    (@DFunLike.coe.{1, 1, 1}\n      (Function.Embedding.{1, 1} (Fin n)\n        (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))\n          (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N))\n          (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N))))\n      (Fin n)\n      (fun (x : Fin n) =>\n        Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))\n          (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N))\n          (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N)))\n      (@Function.instFunLikeEmbedding.{1, 1} (Fin n)\n        (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))\n          (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N))\n          (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N))))\n      (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{u_1} K n N)) j)\n    (fun\n        (val :\n          @Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N)))\n            fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))) =>\n            Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N) v)) =>\n      @Holant.Signature.equality.{u_1} K (@CommSemiring.toSemiring.{u_1} K inst))\n    fun (f : Fin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N))) =>\n    @Holant.EdgeKind.value.{u_1} K (@CommSemiring.toSemiring.{u_1} K inst)\n      (@Holant.OpenNetwork.edge.{u_1} K n N\n        (@Prod.fst.{0, 0} (Fin (@Holant.OpenNetworkShape.edges n (@Holant.OpenNetwork.shape.{u_1} K n N))) Bool\n          (@Holant.OpenNetworkShape.freeEdge n (@Holant.OpenNetwork.shape.{u_1} K n N) f)))","type":"{K : Type u_1} → [CommSemiring.{u_1} K] → {n : Nat} → (N : Holant.OpenNetwork.{u_1} K n) → (j : Fin n) → Bool → Bool → K"},{"category":"tools","display_name":"Holant.OpenNetwork.raw","family":"open","import":"Counting.Bridge.OpenNetwork.Canonical","kind":"definition","module":"Holant.OpenNetwork","name":"Holant.OpenNetwork.raw","name_semantics":"actual named kernel declaration","readable_type":"{K : Type u_1} → [CommSemiring K] → {n : Nat} → Holant.OpenNetwork K n → Holant.Signature K n","role":"canonical","source_line":91,"source_path":"projects/holant-unified/Holant/OpenNetwork.lean","source_sha256":"321df01d4ff1bcad2ccf6de8b17592462ca107cf7a4e17267017a845ae1c366f","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Holant/OpenNetwork.lean#L91","specification":"fun {K : Type u_1} [inst : CommSemiring.{u_1} K] {n : Nat} (N : Holant.OpenNetwork.{u_1} K n) (x : Fin n → Bool) =>\n  @Finset.sum.{0, u_1}\n    (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))\n        (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N))\n        (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N)) →\n      Bool)\n    K (@Semiring.toAddCommMonoid.{u_1} K (@CommSemiring.toSemiring.{u_1} K inst))\n    (@Finset.univ.{0}\n      (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))\n          (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N))\n          (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N)) →\n        Bool)\n      (@Pi.instFintype.{0, 0}\n        (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))\n          (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N))\n          (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N)))\n        (fun\n            (a :\n              Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N))) =>\n          Bool)\n        (fun\n            (a b :\n              Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N))) =>\n          @instDecidableEqSum.{0, 0}\n            (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N)))\n              fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))) =>\n              Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N) v))\n            (Fin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N)))\n            (fun\n                (a b :\n                  @Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N)))\n                    fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))) =>\n                    Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N) v)) =>\n              @Sigma.instDecidableEqSigma.{0, 0}\n                (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N)))\n                (fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))) =>\n                  Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N) v))\n                (instDecidableEqFin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N)))\n                (fun (a : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))) =>\n                  instDecidableEqFin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N) a))\n                a b)\n            (instDecidableEqFin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N))) a b)\n        (@instFintypeSum.{0, 0}\n          (@Sigma.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N)))\n            fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))) =>\n            Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N) v))\n          (Fin (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N)))\n          (@Sigma.instFintype.{0, 0} (Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N)))\n            (fun (v : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))) =>\n              Fin (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N) v))\n            (fun (i : Fin (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))) =>\n              Fin.fintype (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N) i))\n            (Fin.fintype (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))))\n          (Fin.fintype (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N))))\n        fun\n          (a :\n            Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))\n              (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N))\n              (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N))) =>\n        Bool.fintype))\n    fun\n      (z :\n        Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))\n            (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N))\n            (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N)) →\n          Bool) =>\n    @ite.{u_1 + 1} K\n      (∀ (j : Fin n),\n        @Eq.{1} Bool\n          (z\n            (@DFunLike.coe.{1, 1, 1}\n              (Function.Embedding.{1, 1} (Fin n)\n                (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                  (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                  (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N))))\n              (Fin n)\n              (fun (x : Fin n) =>\n                Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                  (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                  (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N)))\n              (@Function.instFunLikeEmbedding.{1, 1} (Fin n)\n                (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                  (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                  (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N))))\n              (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{u_1} K n N)) j))\n          (x j))\n      (@Nat.decidableForallFin n\n        (fun (j : Fin n) =>\n          @Eq.{1} Bool\n            (z\n              (@DFunLike.coe.{1, 1, 1}\n                (Function.Embedding.{1, 1} (Fin n)\n                  (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                    (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                    (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N))))\n                (Fin n)\n                (fun (x : Fin n) =>\n                  Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                    (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                    (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N)))\n                (@Function.instFunLikeEmbedding.{1, 1} (Fin n)\n                  (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                    (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                    (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N))))\n                (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{u_1} K n N)) j))\n            (x j))\n        fun (a : Fin n) =>\n        instDecidableEqBool\n          (z\n            (@DFunLike.coe.{1, 1, 1}\n              (Function.Embedding.{1, 1} (Fin n)\n                (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                  (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                  (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N))))\n              (Fin n)\n              (fun (x : Fin n) =>\n                Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                  (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                  (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N)))\n              (@Function.instFunLikeEmbedding.{1, 1} (Fin n)\n                (Holant.OpenPorts (@Holant.OpenNetworkShape.vertices n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                  (@Holant.OpenNetworkShape.arity n (@Holant.OpenNetwork.shape.{u_1} K n N))\n                  (@Holant.OpenNetworkShape.free n (@Holant.OpenNetwork.shape.{u_1} K n N))))\n              (@Holant.OpenNetworkShape.boundary n (@Holant.OpenNetwork.shape.{u_1} K n N)) a))\n          (x a))\n      (@Holant.OpenNetwork.weight.{u_1} K inst n N z)\n      (@OfNat.ofNat.{u_1} K (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} K\n          (@MulZeroClass.toZero.{u_1} K (@instMulZeroClassOfSemiring.{u_1} K (@CommSemiring.toSemiring.{u_1} K inst)))))","type":"{K : Type u_1} → [CommSemiring.{u_1} K] → {n : Nat} → (N : Holant.OpenNetwork.{u_1} K n) → Holant.Signature.{u_1} K n"},{"category":"tools","display_name":"Holant.OpenNetwork.tensor","family":"open","import":"Counting.Bridge.OpenNetwork.Canonical","kind":"definition","module":"Holant.OpenNetwork","name":"Holant.OpenNetwork.tensor","name_semantics":"actual named kernel declaration","readable_type":"{K : Type u_1} → [CommSemiring K] → {n : Nat} → Holant.OpenNetwork K n → Holant.Signature K n","role":"canonical","source_line":102,"source_path":"projects/holant-unified/Holant/OpenNetwork.lean","source_sha256":"321df01d4ff1bcad2ccf6de8b17592462ca107cf7a4e17267017a845ae1c366f","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Holant/OpenNetwork.lean#L102","specification":"fun {K : Type u_1} [inst : CommSemiring.{u_1} K] {n : Nat} (N : Holant.OpenNetwork.{u_1} K n) =>\n  @Holant.Signature.coordinateAction.{u_1} K inst n (@Holant.OpenNetwork.boundaryKernel.{u_1} K inst n N)\n    (@Holant.OpenNetwork.raw.{u_1} K inst n N)","type":"{K : Type u_1} → [CommSemiring.{u_1} K] → {n : Nat} → (N : Holant.OpenNetwork.{u_1} K n) → Holant.Signature.{u_1} K n"},{"category":"tools","display_name":"Holant.OpenNetworkComposition.realizesUpTo_tensor","family":"open","import":"Counting.Bridge.OpenNetwork.Canonical","kind":"theorem","module":"Holant.OpenNetworkComposition.DisjointTensor","name":"Holant.OpenNetworkComposition.realizesUpTo_tensor","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type u_1} [inst : CommSemiring K] {m n : Nat} [NoZeroDivisors K] (family : Holant.SignatureFamily K)\n  (W : Holant.EdgeKind) (f : Holant.Signature K m) (g : Holant.Signature K n),\n  Holant.Gadget.RealizesUpTo family W f →\n    Holant.Gadget.RealizesUpTo family W g → Holant.Gadget.RealizesUpTo family W (f.tensor g)","role":"canonical","source_line":49,"source_path":"projects/holant-unified/Holant/OpenNetworkComposition/DisjointTensor.lean","source_sha256":"dec269f95c4389791045223e089692db5a0c5c578543b099e01bed53f3ced46f","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Holant/OpenNetworkComposition/DisjointTensor.lean#L49","type":"∀ {K : Type u_1} [inst : CommSemiring.{u_1} K] {m n : Nat}\n  [@NoZeroDivisors.{u_1} K\n      (@Distrib.toMul.{u_1} K (@instDistribOfSemiring.{u_1} K (@CommSemiring.toSemiring.{u_1} K inst)))\n      (@MulZeroClass.toZero.{u_1} K (@instMulZeroClassOfSemiring.{u_1} K (@CommSemiring.toSemiring.{u_1} K inst)))]\n  (family : Holant.SignatureFamily.{u_1} K) (W : Holant.EdgeKind) (f : Holant.Signature.{u_1} K m)\n  (g : Holant.Signature.{u_1} K n) (hf : @Holant.Gadget.RealizesUpTo.{u_1} K inst m family W f)\n  (hg : @Holant.Gadget.RealizesUpTo.{u_1} K inst n family W g),\n  @Holant.Gadget.RealizesUpTo.{u_1} K inst (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n) family\n    W\n    (@Holant.Signature.tensor.{u_1} K m n\n      (@Distrib.toMul.{u_1} K (@instDistribOfSemiring.{u_1} K (@CommSemiring.toSemiring.{u_1} K inst))) f g)"},{"category":"tools","display_name":"Holant.OpenNetworkComposition.realizes_tensor","family":"open","import":"Counting.Bridge.OpenNetwork.Canonical","kind":"theorem","module":"Holant.OpenNetworkComposition.DisjointTensor","name":"Holant.OpenNetworkComposition.realizes_tensor","name_semantics":"actual named kernel declaration","readable_type":"∀ {K : Type u_1} [inst : CommSemiring K] {m n : Nat} (family : Holant.SignatureFamily K) (W : Holant.EdgeKind)\n  (f : Holant.Signature K m) (g : Holant.Signature K n),\n  Holant.Gadget.Realizes family W f → Holant.Gadget.Realizes family W g → Holant.Gadget.Realizes family W (f.tensor g)","role":"canonical","source_line":31,"source_path":"projects/holant-unified/Holant/OpenNetworkComposition/DisjointTensor.lean","source_sha256":"dec269f95c4389791045223e089692db5a0c5c578543b099e01bed53f3ced46f","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Holant/OpenNetworkComposition/DisjointTensor.lean#L31","type":"∀ {K : Type u_1} [inst : CommSemiring.{u_1} K] {m n : Nat} (family : Holant.SignatureFamily.{u_1} K)\n  (W : Holant.EdgeKind) (f : Holant.Signature.{u_1} K m) (g : Holant.Signature.{u_1} K n)\n  (hf : @Holant.Gadget.Realizes.{u_1} K inst m family W f) (hg : @Holant.Gadget.Realizes.{u_1} K inst n family W g),\n  @Holant.Gadget.Realizes.{u_1} K inst (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n) family W\n    (@Holant.Signature.tensor.{u_1} K m n\n      (@Distrib.toMul.{u_1} K (@instDistribOfSemiring.{u_1} K (@CommSemiring.toSemiring.{u_1} K inst))) f g)"},{"category":"tools","display_name":"Holant.Signature.coordinateAction","family":"open","import":"Counting.Bridge.OpenNetwork.Canonical","kind":"definition","module":"Holant.BoundaryAction","name":"Holant.Signature.coordinateAction","name_semantics":"actual named kernel declaration","readable_type":"{K : Type u_1} → [CommSemiring K] → {n : Nat} → (Fin n → Bool → Bool → K) → Holant.Signature K n → Holant.Signature K n","role":"canonical","source_line":11,"source_path":"projects/holant-unified/Holant/BoundaryAction.lean","source_sha256":"53ae7381ecce35d67c3ecd0f283eab8decdb1d76cbfd6a67dd9e66615998dc40","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Holant/BoundaryAction.lean#L11","specification":"fun {K : Type u_1} [inst : CommSemiring.{u_1} K] {n : Nat} (A : Fin n → Bool → Bool → K)\n    (f : Holant.Signature.{u_1} K n) (x : Fin n → Bool) =>\n  @Finset.sum.{0, u_1} (Fin n → Bool) K (@Semiring.toAddCommMonoid.{u_1} K (@CommSemiring.toSemiring.{u_1} K inst))\n    (@Finset.univ.{0} (Fin n → Bool)\n      (@Pi.instFintype.{0, 0} (Fin n) (fun (a : Fin n) => Bool) (instDecidableEqFin n) (Fin.fintype n)\n        fun (a : Fin n) => Bool.fintype))\n    fun (y : Fin n → Bool) =>\n    @HMul.hMul.{u_1, u_1, u_1} K K K\n      (@instHMul.{u_1} K\n        (@Distrib.toMul.{u_1} K (@instDistribOfSemiring.{u_1} K (@CommSemiring.toSemiring.{u_1} K inst))))\n      (@Finset.prod.{0, u_1} (Fin n) K (@CommSemiring.toCommMonoid.{u_1} K inst)\n        (@Finset.univ.{0} (Fin n) (Fin.fintype n)) fun (j : Fin n) => A j (x j) (y j))\n      (f y)","type":"{K : Type u_1} →\n  [CommSemiring.{u_1} K] →\n    {n : Nat} → (A : Fin n → Bool → Bool → K) → (f : Holant.Signature.{u_1} K n) → Holant.Signature.{u_1} K n"},{"category":"flagships","display_name":"Holant.Statements.BinaryDisequality","family":"holant-binary","import":"Holant.Statements","kind":"specification-definition","module":"Holant.Statements","name":"Holant.Statements.BinaryDisequality","original_declaration":"Holant.Statements.BinaryDisequality","readable_type":"{s : Nat} →\n  {a : Nat → Nat} →\n    ((i : Fin s) →\n        Holant.Signature (Subtype fun x => SetLike.instMembership.mem Holant.Tractable.AlgebraicComplex x) (a i.val)) →\n      Prop","role":"specification-definition","source_line":29,"source_path":"projects/holant-unified/Holant/Statements.lean","source_sha256":"d7eb67ecde4a21425a4a7393b41b7a63f9ace3ed74da67fc793d80a330486f78","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Holant/Statements.lean#L29","specification":"fun {s : Nat} {a : Nat → Nat}\n    (G :\n      (i : Fin s) →\n        Holant.Signature.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (a (@Fin.val s i))) =>\n  have criterion : Prop :=\n    Holant.Tractable.TractX\n      (Holant.Tractable.familyAction Holant.Tractable.sourceKBasis\n        (@Union.union.{0}\n          (Holant.SignatureFamily.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x))\n          (@Set.instUnion.{0}\n            (Holant.AnySignature.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)))\n          (@Holant.Statements.family s a G)\n          (@Singleton.singleton.{0, 0}\n            (@Sigma.{0, 0} Nat fun (n : Nat) =>\n              Holant.Signature.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                n)\n            (Holant.SignatureFamily.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x))\n            (@Set.instSingletonSet.{0}\n              (Holant.AnySignature.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)))\n            (@Sigma.mk.{0, 0} Nat\n              (fun (n : Nat) =>\n                Holant.Signature.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  n)\n              (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n              (Holant.Tractable.kernelSignature\n                (@Holant.Signature.equality.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@CommSemiring.toSemiring.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@SubsemiringClass.toCommSemiring.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Holant.Tractable.AlgebraicComplex Complex Complex.instCommSemiring\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Holant.Statements.equalityEdges._proof_1))))))));\n  have input :\n    Computability.Encoding.{0, 0}\n      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n        Holant.Complexity.RawClosedNetwork.WellFormed\n          (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (Holant.Complexity.EdgeSubdivision.targetArity s a) r)\n      Bool :=\n    Holant.Complexity.RawClosedNetwork.validatedEncoding\n      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) (Holant.Complexity.EdgeSubdivision.targetArity s a);\n  have output :\n    Computability.Encoding.{0, 0}\n      (@Subtype.{1}\n        (@Subtype.{1} Complex fun (x : Complex) =>\n          @Membership.mem.{0, 0} Complex\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              Complex\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)))\n            Holant.Tractable.AlgebraicComplex x)\n        fun\n          (x :\n            @Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x) =>\n        @Membership.mem.{0, 0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@IntermediateField.{0, 0} Rat\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            Rat.instField\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              Holant.Statements.BinaryDisequality._proof_1))\n          (@SetLike.instMembership.{0, 0}\n            (@IntermediateField.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1))\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.instSetLike.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1)))\n          (@Holant.Algebraic.familyField.{0, 0}\n            (Holant.Complexity.ExactSignatureTables.CoefficientIndex\n              (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (Holant.Complexity.EdgeSubdivision.targetArity s a))\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              Holant.Statements.BinaryDisequality._proof_1)\n            (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient\n              (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (Holant.Complexity.EdgeSubdivision.targetArity s a) (@Holant.Statements.withDisequality s a G)\n              Holant.Statements.equalityEdges))\n          x)\n      Bool :=\n    @Holant.Algebraic.FixedField.encoding.{0}\n      (@Subtype.{1}\n        (@Subtype.{1} Complex fun (x : Complex) =>\n          @Membership.mem.{0, 0} Complex\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              Complex\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)))\n            Holant.Tractable.AlgebraicComplex x)\n        fun\n          (x :\n            @Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x) =>\n        @Membership.mem.{0, 0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@IntermediateField.{0, 0} Rat\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            Rat.instField\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              Holant.Statements.BinaryDisequality._proof_1))\n          (@SetLike.instMembership.{0, 0}\n            (@IntermediateField.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1))\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.instSetLike.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1)))\n          (@Holant.Algebraic.familyField.{0, 0}\n            (Holant.Complexity.ExactSignatureTables.CoefficientIndex\n              (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (Holant.Complexity.EdgeSubdivision.targetArity s a))\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              Holant.Statements.BinaryDisequality._proof_1)\n            (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient\n              (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (Holant.Complexity.EdgeSubdivision.targetArity s a) (@Holant.Statements.withDisequality s a G)\n              Holant.Statements.equalityEdges))\n          x)\n      (@IntermediateField.toField.{0, 0} Rat\n        (@Subtype.{1} Complex fun (x : Complex) =>\n          @Membership.mem.{0, 0} Complex\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              Complex\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)))\n            Holant.Tractable.AlgebraicComplex x)\n        Rat.instField\n        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n            Complex.instCharZero)\n          Holant.Tractable.AlgebraicComplex)\n        (@DivisionRing.toRatAlgebra.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@Field.toDivisionRing.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex))\n          Holant.Statements.BinaryDisequality._proof_1)\n        (@Holant.Algebraic.familyField.{0, 0}\n          (Holant.Complexity.ExactSignatureTables.CoefficientIndex\n            (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            (Holant.Complexity.EdgeSubdivision.targetArity s a))\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero)\n            Holant.Tractable.AlgebraicComplex)\n          (@DivisionRing.toRatAlgebra.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@Field.toDivisionRing.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex))\n            Holant.Statements.BinaryDisequality._proof_1)\n          (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient\n            (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            (Holant.Complexity.EdgeSubdivision.targetArity s a) (@Holant.Statements.withDisequality s a G)\n            Holant.Statements.equalityEdges)))\n      (@IntermediateField.algebra'.{0, 0, 0} Rat Rat\n        (@Subtype.{1} Complex fun (x : Complex) =>\n          @Membership.mem.{0, 0} Complex\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              Complex\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)))\n            Holant.Tractable.AlgebraicComplex x)\n        Rat.instField\n        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n            Complex.instCharZero)\n          Holant.Tractable.AlgebraicComplex)\n        (@DivisionRing.toRatAlgebra.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@Field.toDivisionRing.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex))\n          Holant.Statements.BinaryDisequality._proof_1)\n        (@Holant.Algebraic.familyField.{0, 0}\n          (Holant.Complexity.ExactSignatureTables.CoefficientIndex\n            (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            (Holant.Complexity.EdgeSubdivision.targetArity s a))\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero)\n            Holant.Tractable.AlgebraicComplex)\n          (@DivisionRing.toRatAlgebra.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@Field.toDivisionRing.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex))\n            Holant.Statements.BinaryDisequality._proof_1)\n          (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient\n            (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            (Holant.Complexity.EdgeSubdivision.targetArity s a) (@Holant.Statements.withDisequality s a G)\n            Holant.Statements.equalityEdges))\n        Rat.commSemiring (@instSMulOfMul.{0} Rat Rat.instMul)\n        (@DivisionRing.toRatAlgebra.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@Field.toDivisionRing.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex))\n          Holant.Statements.BinaryDisequality._proof_1)\n        Holant.Statements.BinaryDisequality._proof_2)\n      (@Module.finrank.{0, 0} Rat\n        (@Subtype.{1}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          fun\n            (x :\n              @Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x) =>\n          @Membership.mem.{0, 0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1))\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.instSetLike.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1)))\n            (@Holant.Algebraic.familyField.{0, 0}\n              (Holant.Complexity.ExactSignatureTables.CoefficientIndex\n                (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (Holant.Complexity.EdgeSubdivision.targetArity s a))\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1)\n              (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient\n                (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (Holant.Complexity.EdgeSubdivision.targetArity s a) (@Holant.Statements.withDisequality s a G)\n                Holant.Statements.equalityEdges))\n            x)\n        Rat.semiring\n        (@AddSubmonoidClass.toAddCommMonoid.{0, 0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@Semiring.toAddCommMonoid.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@CommSemiring.toSemiring.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Semifield.toCommSemiring.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toSemifield.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex)))))\n          (@IntermediateField.{0, 0} Rat\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            Rat.instField\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              Holant.Statements.BinaryDisequality._proof_1))\n          (@IntermediateField.instSetLike.{0, 0} Rat\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            Rat.instField\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              Holant.Statements.BinaryDisequality._proof_1))\n          Holant.Statements.BinaryDisequality._proof_3\n          (@Holant.Algebraic.familyField.{0, 0}\n            (Holant.Complexity.ExactSignatureTables.CoefficientIndex\n              (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (Holant.Complexity.EdgeSubdivision.targetArity s a))\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              Holant.Statements.BinaryDisequality._proof_1)\n            (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient\n              (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (Holant.Complexity.EdgeSubdivision.targetArity s a) (@Holant.Statements.withDisequality s a G)\n              Holant.Statements.equalityEdges)))\n        (@IntermediateField.module'.{0, 0, 0} Rat\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          Rat.instField\n          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero)\n            Holant.Tractable.AlgebraicComplex)\n          (@DivisionRing.toRatAlgebra.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@Field.toDivisionRing.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex))\n            Holant.Statements.BinaryDisequality._proof_1)\n          (@Holant.Algebraic.familyField.{0, 0}\n            (Holant.Complexity.ExactSignatureTables.CoefficientIndex\n              (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (Holant.Complexity.EdgeSubdivision.targetArity s a))\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              Holant.Statements.BinaryDisequality._proof_1)\n            (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient\n              (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (Holant.Complexity.EdgeSubdivision.targetArity s a) (@Holant.Statements.withDisequality s a G)\n              Holant.Statements.equalityEdges))\n          Rat Rat.semiring (@instSMulOfMul.{0} Rat Rat.instMul)\n          (@Algebra.toModule.{0, 0} Rat\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            Rat.commSemiring\n            (@CommSemiring.toSemiring.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Semifield.toCommSemiring.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toSemifield.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))))\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              Holant.Statements.BinaryDisequality._proof_1))\n          Holant.Statements.BinaryDisequality._proof_2))\n      (@Holant.LocalDrafts.MainChain.OriginalFamily.presentation\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (Holant.Complexity.EdgeSubdivision.targetArity s a) (@Holant.Statements.withDisequality s a G)\n        Holant.Statements.equalityEdges);\n  have value :\n    (r :\n        Holant.Complexity.ExactSignatureTables.Input\n          (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (Holant.Complexity.EdgeSubdivision.targetArity s a)) →\n      @Subtype.{1}\n        (@Subtype.{1} Complex fun (x : Complex) =>\n          @Membership.mem.{0, 0} Complex\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              Complex\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)))\n            Holant.Tractable.AlgebraicComplex x)\n        fun\n          (x :\n            @Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x) =>\n        @Membership.mem.{0, 0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@IntermediateField.{0, 0} Rat\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            Rat.instField\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              Holant.Statements.BinaryDisequality._proof_1))\n          (@SetLike.instMembership.{0, 0}\n            (@IntermediateField.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1))\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.instSetLike.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1)))\n          (@Holant.Algebraic.familyField.{0, 0}\n            (Holant.Complexity.ExactSignatureTables.CoefficientIndex\n              (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (Holant.Complexity.EdgeSubdivision.targetArity s a))\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              Holant.Statements.BinaryDisequality._proof_1)\n            (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient\n              (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (Holant.Complexity.EdgeSubdivision.targetArity s a) (@Holant.Statements.withDisequality s a G)\n              Holant.Statements.equalityEdges))\n          x :=\n    @Holant.LocalDrafts.MainChain.OriginalFamily.value\n      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) (Holant.Complexity.EdgeSubdivision.targetArity s a)\n      (@Holant.Statements.withDisequality s a G) Holant.Statements.equalityEdges;\n  And\n    (criterion →\n      @Holant.Complexity.InFP\n        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n          Holant.Complexity.RawClosedNetwork.WellFormed\n            (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            (Holant.Complexity.EdgeSubdivision.targetArity s a) r)\n        (@Subtype.{1}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          fun\n            (x :\n              @Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x) =>\n          @Membership.mem.{0, 0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1))\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.instSetLike.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1)))\n            (@Holant.Algebraic.familyField.{0, 0}\n              (Holant.Complexity.ExactSignatureTables.CoefficientIndex\n                (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (Holant.Complexity.EdgeSubdivision.targetArity s a))\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1)\n              (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient\n                (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (Holant.Complexity.EdgeSubdivision.targetArity s a) (@Holant.Statements.withDisequality s a G)\n                Holant.Statements.equalityEdges))\n            x)\n        Bool Bool Bool.fintype Bool.fintype input output value)\n    (Not criterion →\n      @Holant.LocalDrafts.CountingHardness.WitnessCountingHard\n        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n          Holant.Complexity.RawClosedNetwork.WellFormed\n            (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            (Holant.Complexity.EdgeSubdivision.targetArity s a) r)\n        (@Subtype.{1}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          fun\n            (x :\n              @Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x) =>\n          @Membership.mem.{0, 0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1))\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.instSetLike.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1)))\n            (@Holant.Algebraic.familyField.{0, 0}\n              (Holant.Complexity.ExactSignatureTables.CoefficientIndex\n                (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (Holant.Complexity.EdgeSubdivision.targetArity s a))\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1)\n              (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient\n                (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) s\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (Holant.Complexity.EdgeSubdivision.targetArity s a) (@Holant.Statements.withDisequality s a G)\n                Holant.Statements.equalityEdges))\n            x)\n        input output value)","type":"{s : Nat} →\n  {a : Nat → Nat} →\n    (G :\n        (i : Fin s) →\n          Holant.Signature.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (a (@Fin.val s i))) →\n      Prop"},{"category":"flagships","display_name":"Holant.Statements.LiteralEquality","family":"holant-binary","import":"Holant.Statements","kind":"specification-definition","module":"Holant.Statements","name":"Holant.Statements.LiteralEquality","original_declaration":"Holant.Statements.LiteralEquality","readable_type":"{s : Nat} →\n  {a : Nat → Nat} →\n    ((i : Fin s) →\n        Holant.Signature (Subtype fun x => SetLike.instMembership.mem Holant.Tractable.AlgebraicComplex x) (a i.val)) →\n      Prop","role":"specification-definition","source_line":39,"source_path":"projects/holant-unified/Holant/Statements.lean","source_sha256":"d7eb67ecde4a21425a4a7393b41b7a63f9ace3ed74da67fc793d80a330486f78","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Holant/Statements.lean#L39","specification":"fun {s : Nat} {a : Nat → Nat}\n    (G :\n      (i : Fin s) →\n        Holant.Signature.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (a (@Fin.val s i))) =>\n  @Membership.mem.{0, 0}\n      (@Sigma.{0, 0} Nat fun (n : Nat) =>\n        Holant.Signature.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          n)\n      (Holant.SignatureFamily.{0}\n        (@Subtype.{1} Complex fun (x : Complex) =>\n          @Membership.mem.{0, 0} Complex\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              Complex\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)))\n            Holant.Tractable.AlgebraicComplex x))\n      (@Set.instMembership.{0}\n        (Holant.AnySignature.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)))\n      (@Holant.Statements.family s a G)\n      (@Sigma.mk.{0, 0} Nat\n        (fun (n : Nat) =>\n          Holant.Signature.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            n)\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        (Holant.Tractable.kernelSignature\n          (@Holant.Signature.equality.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@CommSemiring.toSemiring.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@SubsemiringClass.toCommSemiring.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Holant.Tractable.AlgebraicComplex Complex Complex.instCommSemiring\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Holant.Statements.equalityEdges._proof_1))))) →\n    have criterion : Prop :=\n      Holant.Tractable.TractX\n        (Holant.Tractable.familyAction Holant.Tractable.sourceKBasis (@Holant.Statements.family s a G));\n    have input :\n      Computability.Encoding.{0, 0}\n        (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n          Holant.Complexity.RawClosedNetwork.WellFormed s (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            a r)\n        Bool :=\n      Holant.Complexity.RawClosedNetwork.validatedEncoding s\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a;\n    have output :\n      Computability.Encoding.{0, 0}\n        (@Subtype.{1}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          fun\n            (x :\n              @Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x) =>\n          @Membership.mem.{0, 0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1))\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.instSetLike.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1)))\n            (@Holant.Algebraic.familyField.{0, 0}\n              (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1)\n              (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.disequalityEdges))\n            x)\n        Bool :=\n      @Holant.Algebraic.FixedField.encoding.{0}\n        (@Subtype.{1}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          fun\n            (x :\n              @Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x) =>\n          @Membership.mem.{0, 0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1))\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.instSetLike.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1)))\n            (@Holant.Algebraic.familyField.{0, 0}\n              (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1)\n              (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.disequalityEdges))\n            x)\n        (@IntermediateField.toField.{0, 0} Rat\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          Rat.instField\n          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero)\n            Holant.Tractable.AlgebraicComplex)\n          (@DivisionRing.toRatAlgebra.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@Field.toDivisionRing.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex))\n            Holant.Statements.BinaryDisequality._proof_1)\n          (@Holant.Algebraic.familyField.{0, 0}\n            (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              Holant.Statements.BinaryDisequality._proof_1)\n            (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.disequalityEdges)))\n        (@IntermediateField.algebra'.{0, 0, 0} Rat Rat\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          Rat.instField\n          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero)\n            Holant.Tractable.AlgebraicComplex)\n          (@DivisionRing.toRatAlgebra.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@Field.toDivisionRing.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex))\n            Holant.Statements.BinaryDisequality._proof_1)\n          (@Holant.Algebraic.familyField.{0, 0}\n            (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              Holant.Statements.BinaryDisequality._proof_1)\n            (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.disequalityEdges))\n          Rat.commSemiring (@instSMulOfMul.{0} Rat Rat.instMul)\n          (@DivisionRing.toRatAlgebra.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@Field.toDivisionRing.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex))\n            Holant.Statements.BinaryDisequality._proof_1)\n          Holant.Statements.BinaryDisequality._proof_2)\n        (@Module.finrank.{0, 0} Rat\n          (@Subtype.{1}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            fun\n              (x :\n                @Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x) =>\n            @Membership.mem.{0, 0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  Rat.instField\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex)\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    Holant.Statements.BinaryDisequality._proof_1))\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.instSetLike.{0, 0} Rat\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  Rat.instField\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex)\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    Holant.Statements.BinaryDisequality._proof_1)))\n              (@Holant.Algebraic.familyField.{0, 0}\n                (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1)\n                (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.disequalityEdges))\n              x)\n          Rat.semiring\n          (@AddSubmonoidClass.toAddCommMonoid.{0, 0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@Semiring.toAddCommMonoid.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@CommSemiring.toSemiring.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Semifield.toCommSemiring.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toSemifield.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex)))))\n            (@IntermediateField.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1))\n            (@IntermediateField.instSetLike.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1))\n            Holant.Statements.BinaryDisequality._proof_3\n            (@Holant.Algebraic.familyField.{0, 0}\n              (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1)\n              (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.disequalityEdges)))\n          (@IntermediateField.module'.{0, 0, 0} Rat\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            Rat.instField\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              Holant.Statements.BinaryDisequality._proof_1)\n            (@Holant.Algebraic.familyField.{0, 0}\n              (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1)\n              (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.disequalityEdges))\n            Rat Rat.semiring (@instSMulOfMul.{0} Rat Rat.instMul)\n            (@Algebra.toModule.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.commSemiring\n              (@CommSemiring.toSemiring.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Semifield.toCommSemiring.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toSemifield.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))))\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1))\n            Holant.Statements.BinaryDisequality._proof_2))\n        (@Holant.LocalDrafts.MainChain.OriginalFamily.presentation s\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.disequalityEdges);\n    have value :\n      (r :\n          Holant.Complexity.ExactSignatureTables.Input s (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            a) →\n        @Subtype.{1}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          fun\n            (x :\n              @Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x) =>\n          @Membership.mem.{0, 0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1))\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.instSetLike.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1)))\n            (@Holant.Algebraic.familyField.{0, 0}\n              (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1)\n              (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.disequalityEdges))\n            x :=\n      @Holant.LocalDrafts.MainChain.OriginalFamily.value s (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        a G Holant.Statements.disequalityEdges;\n    And\n      (criterion →\n        @Holant.Complexity.InFP\n          (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n            Holant.Complexity.RawClosedNetwork.WellFormed s\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a r)\n          (@Subtype.{1}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            fun\n              (x :\n                @Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x) =>\n            @Membership.mem.{0, 0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  Rat.instField\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex)\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    Holant.Statements.BinaryDisequality._proof_1))\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.instSetLike.{0, 0} Rat\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  Rat.instField\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex)\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    Holant.Statements.BinaryDisequality._proof_1)))\n              (@Holant.Algebraic.familyField.{0, 0}\n                (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1)\n                (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.disequalityEdges))\n              x)\n          Bool Bool Bool.fintype Bool.fintype input output value)\n      (Not criterion →\n        @Holant.LocalDrafts.CountingHardness.WitnessCountingHard\n          (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n            Holant.Complexity.RawClosedNetwork.WellFormed s\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a r)\n          (@Subtype.{1}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            fun\n              (x :\n                @Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x) =>\n            @Membership.mem.{0, 0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  Rat.instField\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex)\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    Holant.Statements.BinaryDisequality._proof_1))\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.instSetLike.{0, 0} Rat\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  Rat.instField\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex)\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    Holant.Statements.BinaryDisequality._proof_1)))\n              (@Holant.Algebraic.familyField.{0, 0}\n                (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1)\n                (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.disequalityEdges))\n              x)\n          input output value)","type":"{s : Nat} →\n  {a : Nat → Nat} →\n    (G :\n        (i : Fin s) →\n          Holant.Signature.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (a (@Fin.val s i))) →\n      Prop"},{"category":"flagships","display_name":"Holant.Statements.Quaternary","family":"holant-binary","import":"Holant.Statements","kind":"specification-definition","module":"Holant.Statements","name":"Holant.Statements.Quaternary","original_declaration":"Holant.Statements.Quaternary","readable_type":"{s : Nat} →\n  {a : Nat → Nat} →\n    ((i : Fin s) →\n        Holant.Signature (Subtype fun x => SetLike.instMembership.mem Holant.Tractable.AlgebraicComplex x) (a i.val)) →\n      Prop","role":"specification-definition","source_line":50,"source_path":"projects/holant-unified/Holant/Statements.lean","source_sha256":"d7eb67ecde4a21425a4a7393b41b7a63f9ace3ed74da67fc793d80a330486f78","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Holant/Statements.lean#L50","specification":"fun {s : Nat} {a : Nat → Nat}\n    (G :\n      (i : Fin s) →\n        Holant.Signature.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (a (@Fin.val s i))) =>\n  ∀\n    (q :\n      Holant.Signature.{0}\n        (@Subtype.{1} Complex fun (x : Complex) =>\n          @Membership.mem.{0, 0} Complex\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              Complex\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)))\n            Holant.Tractable.AlgebraicComplex x)\n        (@OfNat.ofNat.{0} Nat (nat_lit 4) (instOfNatNat (nat_lit 4)))),\n    @Membership.mem.{0, 0}\n        (@Sigma.{0, 0} Nat fun (n : Nat) =>\n          Holant.Signature.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            n)\n        (Holant.SignatureFamily.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x))\n        (@Set.instMembership.{0}\n          (Holant.AnySignature.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)))\n        (@Holant.Statements.family s a G)\n        (@Sigma.mk.{0, 0} Nat\n          (fun (n : Nat) =>\n            Holant.Signature.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              n)\n          (@OfNat.ofNat.{0} Nat (nat_lit 4) (instOfNatNat (nat_lit 4))) q) →\n      (∀ (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 4) (instOfNatNat (nat_lit 4))) → Bool),\n          @Eq.{1} Nat\n              (@HMod.hMod.{0, 0, 0} Nat Nat Nat (@instHMod.{0} Nat Nat.instMod)\n                (@Holant.weight (@OfNat.ofNat.{0} Nat (nat_lit 4) (instOfNatNat (nat_lit 4))) x)\n                (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) →\n            @Eq.{1}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (q x)\n              (@OfNat.ofNat.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (nat_lit 0)\n                (@Zero.toOfNat0.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@ZeroMemClass.zero.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex.instZero Holant.Statements.Quaternary._proof_1 Holant.Tractable.AlgebraicComplex)))) →\n        @Ne.{1}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@HMul.hMul.{0, 0, 0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@instHMul.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Distrib.toMul.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@instDistribOfSemiring.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@CommSemiring.toSemiring.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@SubsemiringClass.toCommSemiring.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Holant.Tractable.AlgebraicComplex Complex Complex.instCommSemiring\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Holant.Statements.equalityEdges._proof_1)))))\n              (q fun (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 4) (instOfNatNat (nat_lit 4)))) => Bool.false)\n              (q fun (x : Fin (@OfNat.ofNat.{0} Nat (nat_lit 4) (instOfNatNat (nat_lit 4)))) => Bool.true))\n            (@OfNat.ofNat.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (nat_lit 0)\n              (@Zero.toOfNat0.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@ZeroMemClass.zero.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex.instZero Holant.Statements.Quaternary._proof_1 Holant.Tractable.AlgebraicComplex))) →\n          Holant.Certificates.EqualityQuaternary.TensorPrime q →\n            have criterion : Prop :=\n              Holant.Tractable.Tract\n                (Holant.Tractable.familyAction Holant.Tractable.sourceKBasis (@Holant.Statements.family s a G));\n            have input :\n              Computability.Encoding.{0, 0}\n                (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                  Holant.Complexity.RawClosedNetwork.WellFormed s\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a r)\n                Bool :=\n              Holant.Complexity.RawClosedNetwork.validatedEncoding s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a;\n            have output :\n              Computability.Encoding.{0, 0}\n                (@Subtype.{1}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  fun\n                    (x :\n                      @Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x) =>\n                  @Membership.mem.{0, 0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.{0, 0} Rat\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      Rat.instField\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex)\n                      (@DivisionRing.toRatAlgebra.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@Field.toDivisionRing.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                            Holant.Tractable.AlgebraicComplex))\n                        Holant.Statements.BinaryDisequality._proof_1))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        Rat.instField\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex)\n                        (@DivisionRing.toRatAlgebra.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@Field.toDivisionRing.{0}\n                            (@Subtype.{1} Complex fun (x : Complex) =>\n                              @Membership.mem.{0, 0} Complex\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                (@SetLike.instMembership.{0, 0}\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  Complex\n                                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                Holant.Tractable.AlgebraicComplex x)\n                            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                              Holant.Tractable.AlgebraicComplex))\n                          Holant.Statements.BinaryDisequality._proof_1))\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.instSetLike.{0, 0} Rat\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        Rat.instField\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex)\n                        (@DivisionRing.toRatAlgebra.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@Field.toDivisionRing.{0}\n                            (@Subtype.{1} Complex fun (x : Complex) =>\n                              @Membership.mem.{0, 0} Complex\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                (@SetLike.instMembership.{0, 0}\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  Complex\n                                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                Holant.Tractable.AlgebraicComplex x)\n                            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                              Holant.Tractable.AlgebraicComplex))\n                          Holant.Statements.BinaryDisequality._proof_1)))\n                    (@Holant.Algebraic.familyField.{0, 0}\n                      (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex)\n                      (@DivisionRing.toRatAlgebra.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@Field.toDivisionRing.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                            Holant.Tractable.AlgebraicComplex))\n                        Holant.Statements.BinaryDisequality._proof_1)\n                      (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G\n                        Holant.Statements.disequalityEdges))\n                    x)\n                Bool :=\n              @Holant.Algebraic.FixedField.encoding.{0}\n                (@Subtype.{1}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  fun\n                    (x :\n                      @Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x) =>\n                  @Membership.mem.{0, 0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.{0, 0} Rat\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      Rat.instField\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex)\n                      (@DivisionRing.toRatAlgebra.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@Field.toDivisionRing.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                            Holant.Tractable.AlgebraicComplex))\n                        Holant.Statements.BinaryDisequality._proof_1))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        Rat.instField\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex)\n                        (@DivisionRing.toRatAlgebra.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@Field.toDivisionRing.{0}\n                            (@Subtype.{1} Complex fun (x : Complex) =>\n                              @Membership.mem.{0, 0} Complex\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                (@SetLike.instMembership.{0, 0}\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  Complex\n                                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                Holant.Tractable.AlgebraicComplex x)\n                            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                              Holant.Tractable.AlgebraicComplex))\n                          Holant.Statements.BinaryDisequality._proof_1))\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.instSetLike.{0, 0} Rat\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        Rat.instField\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex)\n                        (@DivisionRing.toRatAlgebra.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@Field.toDivisionRing.{0}\n                            (@Subtype.{1} Complex fun (x : Complex) =>\n                              @Membership.mem.{0, 0} Complex\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                (@SetLike.instMembership.{0, 0}\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  Complex\n                                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                Holant.Tractable.AlgebraicComplex x)\n                            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                              Holant.Tractable.AlgebraicComplex))\n                          Holant.Statements.BinaryDisequality._proof_1)))\n                    (@Holant.Algebraic.familyField.{0, 0}\n                      (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex)\n                      (@DivisionRing.toRatAlgebra.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@Field.toDivisionRing.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                            Holant.Tractable.AlgebraicComplex))\n                        Holant.Statements.BinaryDisequality._proof_1)\n                      (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G\n                        Holant.Statements.disequalityEdges))\n                    x)\n                (@IntermediateField.toField.{0, 0} Rat\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  Rat.instField\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex)\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    Holant.Statements.BinaryDisequality._proof_1)\n                  (@Holant.Algebraic.familyField.{0, 0}\n                    (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex)\n                    (@DivisionRing.toRatAlgebra.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@Field.toDivisionRing.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex))\n                      Holant.Statements.BinaryDisequality._proof_1)\n                    (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G\n                      Holant.Statements.disequalityEdges)))\n                (@IntermediateField.algebra'.{0, 0, 0} Rat Rat\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  Rat.instField\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex)\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    Holant.Statements.BinaryDisequality._proof_1)\n                  (@Holant.Algebraic.familyField.{0, 0}\n                    (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex)\n                    (@DivisionRing.toRatAlgebra.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@Field.toDivisionRing.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex))\n                      Holant.Statements.BinaryDisequality._proof_1)\n                    (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G\n                      Holant.Statements.disequalityEdges))\n                  Rat.commSemiring (@instSMulOfMul.{0} Rat Rat.instMul)\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    Holant.Statements.BinaryDisequality._proof_1)\n                  Holant.Statements.BinaryDisequality._proof_2)\n                (@Module.finrank.{0, 0} Rat\n                  (@Subtype.{1}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    fun\n                      (x :\n                        @Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x) =>\n                    @Membership.mem.{0, 0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.{0, 0} Rat\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        Rat.instField\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex)\n                        (@DivisionRing.toRatAlgebra.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@Field.toDivisionRing.{0}\n                            (@Subtype.{1} Complex fun (x : Complex) =>\n                              @Membership.mem.{0, 0} Complex\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                (@SetLike.instMembership.{0, 0}\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  Complex\n                                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                Holant.Tractable.AlgebraicComplex x)\n                            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                              Holant.Tractable.AlgebraicComplex))\n                          Holant.Statements.BinaryDisequality._proof_1))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          Rat.instField\n                          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                            Holant.Tractable.AlgebraicComplex)\n                          (@DivisionRing.toRatAlgebra.{0}\n                            (@Subtype.{1} Complex fun (x : Complex) =>\n                              @Membership.mem.{0, 0} Complex\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                (@SetLike.instMembership.{0, 0}\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  Complex\n                                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                Holant.Tractable.AlgebraicComplex x)\n                            (@Field.toDivisionRing.{0}\n                              (@Subtype.{1} Complex fun (x : Complex) =>\n                                @Membership.mem.{0, 0} Complex\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  (@SetLike.instMembership.{0, 0}\n                                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                      (@DivisionRing.toRatAlgebra.{0} Complex\n                                        (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                    Complex\n                                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                      (@DivisionRing.toRatAlgebra.{0} Complex\n                                        (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                  Holant.Tractable.AlgebraicComplex x)\n                              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                                Holant.Tractable.AlgebraicComplex))\n                            Holant.Statements.BinaryDisequality._proof_1))\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@IntermediateField.instSetLike.{0, 0} Rat\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          Rat.instField\n                          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                            Holant.Tractable.AlgebraicComplex)\n                          (@DivisionRing.toRatAlgebra.{0}\n                            (@Subtype.{1} Complex fun (x : Complex) =>\n                              @Membership.mem.{0, 0} Complex\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                (@SetLike.instMembership.{0, 0}\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  Complex\n                                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                Holant.Tractable.AlgebraicComplex x)\n                            (@Field.toDivisionRing.{0}\n                              (@Subtype.{1} Complex fun (x : Complex) =>\n                                @Membership.mem.{0, 0} Complex\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  (@SetLike.instMembership.{0, 0}\n                                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                      (@DivisionRing.toRatAlgebra.{0} Complex\n                                        (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                    Complex\n                                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                      (@DivisionRing.toRatAlgebra.{0} Complex\n                                        (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                  Holant.Tractable.AlgebraicComplex x)\n                              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                                Holant.Tractable.AlgebraicComplex))\n                            Holant.Statements.BinaryDisequality._proof_1)))\n                      (@Holant.Algebraic.familyField.{0, 0}\n                        (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex)\n                        (@DivisionRing.toRatAlgebra.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@Field.toDivisionRing.{0}\n                            (@Subtype.{1} Complex fun (x : Complex) =>\n                              @Membership.mem.{0, 0} Complex\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                (@SetLike.instMembership.{0, 0}\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  Complex\n                                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                Holant.Tractable.AlgebraicComplex x)\n                            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                              Holant.Tractable.AlgebraicComplex))\n                          Holant.Statements.BinaryDisequality._proof_1)\n                        (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G\n                          Holant.Statements.disequalityEdges))\n                      x)\n                  Rat.semiring\n                  (@AddSubmonoidClass.toAddCommMonoid.{0, 0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Semiring.toAddCommMonoid.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@CommSemiring.toSemiring.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@Semifield.toCommSemiring.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@Field.toSemifield.{0}\n                            (@Subtype.{1} Complex fun (x : Complex) =>\n                              @Membership.mem.{0, 0} Complex\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                (@SetLike.instMembership.{0, 0}\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  Complex\n                                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                Holant.Tractable.AlgebraicComplex x)\n                            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                              Holant.Tractable.AlgebraicComplex)))))\n                    (@IntermediateField.{0, 0} Rat\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      Rat.instField\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex)\n                      (@DivisionRing.toRatAlgebra.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@Field.toDivisionRing.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                            Holant.Tractable.AlgebraicComplex))\n                        Holant.Statements.BinaryDisequality._proof_1))\n                    (@IntermediateField.instSetLike.{0, 0} Rat\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      Rat.instField\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex)\n                      (@DivisionRing.toRatAlgebra.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@Field.toDivisionRing.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                            Holant.Tractable.AlgebraicComplex))\n                        Holant.Statements.BinaryDisequality._proof_1))\n                    Holant.Statements.BinaryDisequality._proof_3\n                    (@Holant.Algebraic.familyField.{0, 0}\n                      (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex)\n                      (@DivisionRing.toRatAlgebra.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@Field.toDivisionRing.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                            Holant.Tractable.AlgebraicComplex))\n                        Holant.Statements.BinaryDisequality._proof_1)\n                      (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G\n                        Holant.Statements.disequalityEdges)))\n                  (@IntermediateField.module'.{0, 0, 0} Rat\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    Rat.instField\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex)\n                    (@DivisionRing.toRatAlgebra.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@Field.toDivisionRing.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex))\n                      Holant.Statements.BinaryDisequality._proof_1)\n                    (@Holant.Algebraic.familyField.{0, 0}\n                      (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex)\n                      (@DivisionRing.toRatAlgebra.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@Field.toDivisionRing.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                            Holant.Tractable.AlgebraicComplex))\n                        Holant.Statements.BinaryDisequality._proof_1)\n                      (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G\n                        Holant.Statements.disequalityEdges))\n                    Rat Rat.semiring (@instSMulOfMul.{0} Rat Rat.instMul)\n                    (@Algebra.toModule.{0, 0} Rat\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      Rat.commSemiring\n                      (@CommSemiring.toSemiring.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@Semifield.toCommSemiring.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@Field.toSemifield.{0}\n                            (@Subtype.{1} Complex fun (x : Complex) =>\n                              @Membership.mem.{0, 0} Complex\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                (@SetLike.instMembership.{0, 0}\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  Complex\n                                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                Holant.Tractable.AlgebraicComplex x)\n                            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                              Holant.Tractable.AlgebraicComplex))))\n                      (@DivisionRing.toRatAlgebra.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@Field.toDivisionRing.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                            Holant.Tractable.AlgebraicComplex))\n                        Holant.Statements.BinaryDisequality._proof_1))\n                    Holant.Statements.BinaryDisequality._proof_2))\n                (@Holant.LocalDrafts.MainChain.OriginalFamily.presentation s\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.disequalityEdges);\n            have value :\n              (r :\n                  Holant.Complexity.ExactSignatureTables.Input s\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a) →\n                @Subtype.{1}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  fun\n                    (x :\n                      @Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x) =>\n                  @Membership.mem.{0, 0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.{0, 0} Rat\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      Rat.instField\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex)\n                      (@DivisionRing.toRatAlgebra.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@Field.toDivisionRing.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                            Holant.Tractable.AlgebraicComplex))\n                        Holant.Statements.BinaryDisequality._proof_1))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        Rat.instField\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex)\n                        (@DivisionRing.toRatAlgebra.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@Field.toDivisionRing.{0}\n                            (@Subtype.{1} Complex fun (x : Complex) =>\n                              @Membership.mem.{0, 0} Complex\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                (@SetLike.instMembership.{0, 0}\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  Complex\n                                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                Holant.Tractable.AlgebraicComplex x)\n                            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                              Holant.Tractable.AlgebraicComplex))\n                          Holant.Statements.BinaryDisequality._proof_1))\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.instSetLike.{0, 0} Rat\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        Rat.instField\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex)\n                        (@DivisionRing.toRatAlgebra.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@Field.toDivisionRing.{0}\n                            (@Subtype.{1} Complex fun (x : Complex) =>\n                              @Membership.mem.{0, 0} Complex\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                (@SetLike.instMembership.{0, 0}\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  Complex\n                                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                Holant.Tractable.AlgebraicComplex x)\n                            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                              Holant.Tractable.AlgebraicComplex))\n                          Holant.Statements.BinaryDisequality._proof_1)))\n                    (@Holant.Algebraic.familyField.{0, 0}\n                      (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex)\n                      (@DivisionRing.toRatAlgebra.{0}\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@Field.toDivisionRing.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                            Holant.Tractable.AlgebraicComplex))\n                        Holant.Statements.BinaryDisequality._proof_1)\n                      (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G\n                        Holant.Statements.disequalityEdges))\n                    x :=\n              @Holant.LocalDrafts.MainChain.OriginalFamily.value s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.disequalityEdges;\n            And\n              (criterion →\n                @Holant.Complexity.InFP\n                  (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed s\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a r)\n                  (@Subtype.{1}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    fun\n                      (x :\n                        @Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x) =>\n                    @Membership.mem.{0, 0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.{0, 0} Rat\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        Rat.instField\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex)\n                        (@DivisionRing.toRatAlgebra.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@Field.toDivisionRing.{0}\n                            (@Subtype.{1} Complex fun (x : Complex) =>\n                              @Membership.mem.{0, 0} Complex\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                (@SetLike.instMembership.{0, 0}\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  Complex\n                                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                Holant.Tractable.AlgebraicComplex x)\n                            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                              Holant.Tractable.AlgebraicComplex))\n                          Holant.Statements.BinaryDisequality._proof_1))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          Rat.instField\n                          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                            Holant.Tractable.AlgebraicComplex)\n                          (@DivisionRing.toRatAlgebra.{0}\n                            (@Subtype.{1} Complex fun (x : Complex) =>\n                              @Membership.mem.{0, 0} Complex\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                (@SetLike.instMembership.{0, 0}\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  Complex\n                                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                Holant.Tractable.AlgebraicComplex x)\n                            (@Field.toDivisionRing.{0}\n                              (@Subtype.{1} Complex fun (x : Complex) =>\n                                @Membership.mem.{0, 0} Complex\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  (@SetLike.instMembership.{0, 0}\n                                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                      (@DivisionRing.toRatAlgebra.{0} Complex\n                                        (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                    Complex\n                                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                      (@DivisionRing.toRatAlgebra.{0} Complex\n                                        (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                  Holant.Tractable.AlgebraicComplex x)\n                              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                                Holant.Tractable.AlgebraicComplex))\n                            Holant.Statements.BinaryDisequality._proof_1))\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@IntermediateField.instSetLike.{0, 0} Rat\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          Rat.instField\n                          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                            Holant.Tractable.AlgebraicComplex)\n                          (@DivisionRing.toRatAlgebra.{0}\n                            (@Subtype.{1} Complex fun (x : Complex) =>\n                              @Membership.mem.{0, 0} Complex\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                (@SetLike.instMembership.{0, 0}\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  Complex\n                                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                Holant.Tractable.AlgebraicComplex x)\n                            (@Field.toDivisionRing.{0}\n                              (@Subtype.{1} Complex fun (x : Complex) =>\n                                @Membership.mem.{0, 0} Complex\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  (@SetLike.instMembership.{0, 0}\n                                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                      (@DivisionRing.toRatAlgebra.{0} Complex\n                                        (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                    Complex\n                                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                      (@DivisionRing.toRatAlgebra.{0} Complex\n                                        (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                  Holant.Tractable.AlgebraicComplex x)\n                              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                                Holant.Tractable.AlgebraicComplex))\n                            Holant.Statements.BinaryDisequality._proof_1)))\n                      (@Holant.Algebraic.familyField.{0, 0}\n                        (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex)\n                        (@DivisionRing.toRatAlgebra.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@Field.toDivisionRing.{0}\n                            (@Subtype.{1} Complex fun (x : Complex) =>\n                              @Membership.mem.{0, 0} Complex\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                (@SetLike.instMembership.{0, 0}\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  Complex\n                                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                Holant.Tractable.AlgebraicComplex x)\n                            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                              Holant.Tractable.AlgebraicComplex))\n                          Holant.Statements.BinaryDisequality._proof_1)\n                        (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G\n                          Holant.Statements.disequalityEdges))\n                      x)\n                  Bool Bool Bool.fintype Bool.fintype input output value)\n              (Not criterion →\n                @Holant.LocalDrafts.CountingHardness.WitnessCountingHard\n                  (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n                    Holant.Complexity.RawClosedNetwork.WellFormed s\n                      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a r)\n                  (@Subtype.{1}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    fun\n                      (x :\n                        @Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x) =>\n                    @Membership.mem.{0, 0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.{0, 0} Rat\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        Rat.instField\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex)\n                        (@DivisionRing.toRatAlgebra.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@Field.toDivisionRing.{0}\n                            (@Subtype.{1} Complex fun (x : Complex) =>\n                              @Membership.mem.{0, 0} Complex\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                (@SetLike.instMembership.{0, 0}\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  Complex\n                                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                Holant.Tractable.AlgebraicComplex x)\n                            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                              Holant.Tractable.AlgebraicComplex))\n                          Holant.Statements.BinaryDisequality._proof_1))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          Rat.instField\n                          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                            Holant.Tractable.AlgebraicComplex)\n                          (@DivisionRing.toRatAlgebra.{0}\n                            (@Subtype.{1} Complex fun (x : Complex) =>\n                              @Membership.mem.{0, 0} Complex\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                (@SetLike.instMembership.{0, 0}\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  Complex\n                                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                Holant.Tractable.AlgebraicComplex x)\n                            (@Field.toDivisionRing.{0}\n                              (@Subtype.{1} Complex fun (x : Complex) =>\n                                @Membership.mem.{0, 0} Complex\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  (@SetLike.instMembership.{0, 0}\n                                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                      (@DivisionRing.toRatAlgebra.{0} Complex\n                                        (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                    Complex\n                                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                      (@DivisionRing.toRatAlgebra.{0} Complex\n                                        (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                  Holant.Tractable.AlgebraicComplex x)\n                              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                                Holant.Tractable.AlgebraicComplex))\n                            Holant.Statements.BinaryDisequality._proof_1))\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@IntermediateField.instSetLike.{0, 0} Rat\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          Rat.instField\n                          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                            Holant.Tractable.AlgebraicComplex)\n                          (@DivisionRing.toRatAlgebra.{0}\n                            (@Subtype.{1} Complex fun (x : Complex) =>\n                              @Membership.mem.{0, 0} Complex\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                (@SetLike.instMembership.{0, 0}\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  Complex\n                                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                Holant.Tractable.AlgebraicComplex x)\n                            (@Field.toDivisionRing.{0}\n                              (@Subtype.{1} Complex fun (x : Complex) =>\n                                @Membership.mem.{0, 0} Complex\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  (@SetLike.instMembership.{0, 0}\n                                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                      (@DivisionRing.toRatAlgebra.{0} Complex\n                                        (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                    Complex\n                                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                      (@DivisionRing.toRatAlgebra.{0} Complex\n                                        (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                  Holant.Tractable.AlgebraicComplex x)\n                              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                                Holant.Tractable.AlgebraicComplex))\n                            Holant.Statements.BinaryDisequality._proof_1)))\n                      (@Holant.Algebraic.familyField.{0, 0}\n                        (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n                        (@Subtype.{1} Complex fun (x : Complex) =>\n                          @Membership.mem.{0, 0} Complex\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            (@SetLike.instMembership.{0, 0}\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              Complex\n                              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                            Holant.Tractable.AlgebraicComplex x)\n                        (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)\n                          Holant.Tractable.AlgebraicComplex)\n                        (@DivisionRing.toRatAlgebra.{0}\n                          (@Subtype.{1} Complex fun (x : Complex) =>\n                            @Membership.mem.{0, 0} Complex\n                              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                (@DivisionRing.toRatAlgebra.{0} Complex\n                                  (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                              (@SetLike.instMembership.{0, 0}\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                Complex\n                                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                              Holant.Tractable.AlgebraicComplex x)\n                          (@Field.toDivisionRing.{0}\n                            (@Subtype.{1} Complex fun (x : Complex) =>\n                              @Membership.mem.{0, 0} Complex\n                                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                  (@DivisionRing.toRatAlgebra.{0} Complex\n                                    (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                (@SetLike.instMembership.{0, 0}\n                                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                                  Complex\n                                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                                    (@DivisionRing.toRatAlgebra.{0} Complex\n                                      (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                                Holant.Tractable.AlgebraicComplex x)\n                            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)\n                              Holant.Tractable.AlgebraicComplex))\n                          Holant.Statements.BinaryDisequality._proof_1)\n                        (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G\n                          Holant.Statements.disequalityEdges))\n                      x)\n                  input output value)","type":"{s : Nat} →\n  {a : Nat → Nat} →\n    (G :\n        (i : Fin s) →\n          Holant.Signature.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (a (@Fin.val s i))) →\n      Prop"},{"category":"flagships","display_name":"Holant.Statements.TractableEvaluation","family":"holant-binary","import":"Holant.Statements","kind":"specification-definition","module":"Holant.Statements","name":"Holant.Statements.TractableEvaluation","original_declaration":"Holant.Statements.TractableEvaluation","readable_type":"{s : Nat} →\n  {a : Nat → Nat} →\n    ((i : Fin s) →\n        Holant.Signature (Subtype fun x => SetLike.instMembership.mem Holant.Tractable.AlgebraicComplex x) (a i.val)) →\n      Prop","role":"specification-definition","source_line":64,"source_path":"projects/holant-unified/Holant/Statements.lean","source_sha256":"d7eb67ecde4a21425a4a7393b41b7a63f9ace3ed74da67fc793d80a330486f78","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Holant/Statements.lean#L64","specification":"fun {s : Nat} {a : Nat → Nat}\n    (G :\n      (i : Fin s) →\n        Holant.Signature.{0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (a (@Fin.val s i))) =>\n  Holant.Tractable.Tract (@Holant.Statements.family s a G) →\n    @Holant.Complexity.InFP\n      (@Subtype.{1} Holant.Complexity.RawClosedNetwork fun (r : Holant.Complexity.RawClosedNetwork) =>\n        Holant.Complexity.RawClosedNetwork.WellFormed s (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a\n          r)\n      (@Subtype.{1}\n        (@Subtype.{1} Complex fun (x : Complex) =>\n          @Membership.mem.{0, 0} Complex\n            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              Complex\n              (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)))\n            Holant.Tractable.AlgebraicComplex x)\n        fun\n          (x :\n            @Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x) =>\n        @Membership.mem.{0, 0}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          (@IntermediateField.{0, 0} Rat\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            Rat.instField\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              Holant.Statements.BinaryDisequality._proof_1))\n          (@SetLike.instMembership.{0, 0}\n            (@IntermediateField.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1))\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.instSetLike.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1)))\n          (@Holant.Algebraic.familyField.{0, 0}\n            (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              Holant.Statements.BinaryDisequality._proof_1)\n            (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.equalityEdges))\n          x)\n      Bool Bool Bool.fintype Bool.fintype\n      (Holant.Complexity.RawClosedNetwork.validatedEncoding s\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n      (@Holant.Algebraic.FixedField.encoding.{0}\n        (@Subtype.{1}\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          fun\n            (x :\n              @Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x) =>\n          @Membership.mem.{0, 0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1))\n            (@SetLike.instMembership.{0, 0}\n              (@IntermediateField.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1))\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.instSetLike.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1)))\n            (@Holant.Algebraic.familyField.{0, 0}\n              (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1)\n              (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.equalityEdges))\n            x)\n        (@IntermediateField.toField.{0, 0} Rat\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          Rat.instField\n          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero)\n            Holant.Tractable.AlgebraicComplex)\n          (@DivisionRing.toRatAlgebra.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@Field.toDivisionRing.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex))\n            Holant.Statements.BinaryDisequality._proof_1)\n          (@Holant.Algebraic.familyField.{0, 0}\n            (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              Holant.Statements.BinaryDisequality._proof_1)\n            (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.equalityEdges)))\n        (@IntermediateField.algebra'.{0, 0, 0} Rat Rat\n          (@Subtype.{1} Complex fun (x : Complex) =>\n            @Membership.mem.{0, 0} Complex\n              (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                Complex\n                (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)))\n              Holant.Tractable.AlgebraicComplex x)\n          Rat.instField\n          (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n            (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n              Complex.instCharZero)\n            Holant.Tractable.AlgebraicComplex)\n          (@DivisionRing.toRatAlgebra.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@Field.toDivisionRing.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex))\n            Holant.Statements.BinaryDisequality._proof_1)\n          (@Holant.Algebraic.familyField.{0, 0}\n            (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              Holant.Statements.BinaryDisequality._proof_1)\n            (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.equalityEdges))\n          Rat.commSemiring (@instSMulOfMul.{0} Rat Rat.instMul)\n          (@DivisionRing.toRatAlgebra.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@Field.toDivisionRing.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex))\n            Holant.Statements.BinaryDisequality._proof_1)\n          Holant.Statements.BinaryDisequality._proof_2)\n        (@Module.finrank.{0, 0} Rat\n          (@Subtype.{1}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            fun\n              (x :\n                @Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x) =>\n            @Membership.mem.{0, 0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.{0, 0} Rat\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                Rat.instField\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1))\n              (@SetLike.instMembership.{0, 0}\n                (@IntermediateField.{0, 0} Rat\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  Rat.instField\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex)\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    Holant.Statements.BinaryDisequality._proof_1))\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.instSetLike.{0, 0} Rat\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  Rat.instField\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex)\n                  (@DivisionRing.toRatAlgebra.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@Field.toDivisionRing.{0}\n                      (@Subtype.{1} Complex fun (x : Complex) =>\n                        @Membership.mem.{0, 0} Complex\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          (@SetLike.instMembership.{0, 0}\n                            (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                            Complex\n                            (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                              (@DivisionRing.toRatAlgebra.{0} Complex\n                                (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                          Holant.Tractable.AlgebraicComplex x)\n                      (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)\n                        Holant.Tractable.AlgebraicComplex))\n                    Holant.Statements.BinaryDisequality._proof_1)))\n              (@Holant.Algebraic.familyField.{0, 0}\n                (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex)\n                (@DivisionRing.toRatAlgebra.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toDivisionRing.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))\n                  Holant.Statements.BinaryDisequality._proof_1)\n                (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.equalityEdges))\n              x)\n          Rat.semiring\n          (@AddSubmonoidClass.toAddCommMonoid.{0, 0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (@Semiring.toAddCommMonoid.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@CommSemiring.toSemiring.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Semifield.toCommSemiring.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toSemifield.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex)))))\n            (@IntermediateField.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1))\n            (@IntermediateField.instSetLike.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.instField\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1))\n            Holant.Statements.BinaryDisequality._proof_3\n            (@Holant.Algebraic.familyField.{0, 0}\n              (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1)\n              (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.equalityEdges)))\n          (@IntermediateField.module'.{0, 0, 0} Rat\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            Rat.instField\n            (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n              (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                Complex.instCharZero)\n              Holant.Tractable.AlgebraicComplex)\n            (@DivisionRing.toRatAlgebra.{0}\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@Field.toDivisionRing.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero)\n                  Holant.Tractable.AlgebraicComplex))\n              Holant.Statements.BinaryDisequality._proof_1)\n            (@Holant.Algebraic.familyField.{0, 0}\n              (Holant.Complexity.ExactSignatureTables.CoefficientIndex s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a)\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                  Complex.instCharZero)\n                Holant.Tractable.AlgebraicComplex)\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1)\n              (@Holant.LocalDrafts.MainChain.OriginalFamily.coefficient s\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.equalityEdges))\n            Rat Rat.semiring (@instSMulOfMul.{0} Rat Rat.instMul)\n            (@Algebra.toModule.{0, 0} Rat\n              (@Subtype.{1} Complex fun (x : Complex) =>\n                @Membership.mem.{0, 0} Complex\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  (@SetLike.instMembership.{0, 0}\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    Complex\n                    (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)))\n                  Holant.Tractable.AlgebraicComplex x)\n              Rat.commSemiring\n              (@CommSemiring.toSemiring.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Semifield.toCommSemiring.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@Field.toSemifield.{0}\n                    (@Subtype.{1} Complex fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        (@SetLike.instMembership.{0, 0}\n                          (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero))\n                          Complex\n                          (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                            (@DivisionRing.toRatAlgebra.{0} Complex\n                              (@Field.toDivisionRing.{0} Complex Complex.instField) Complex.instCharZero)))\n                        Holant.Tractable.AlgebraicComplex x)\n                    (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero)\n                      Holant.Tractable.AlgebraicComplex))))\n              (@DivisionRing.toRatAlgebra.{0}\n                (@Subtype.{1} Complex fun (x : Complex) =>\n                  @Membership.mem.{0, 0} Complex\n                    (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                      (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                        Complex.instCharZero))\n                    (@SetLike.instMembership.{0, 0}\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      Complex\n                      (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero)))\n                    Holant.Tractable.AlgebraicComplex x)\n                (@Field.toDivisionRing.{0}\n                  (@Subtype.{1} Complex fun (x : Complex) =>\n                    @Membership.mem.{0, 0} Complex\n                      (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                        (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                          Complex.instCharZero))\n                      (@SetLike.instMembership.{0, 0}\n                        (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero))\n                        Complex\n                        (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                          (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                            Complex.instCharZero)))\n                      Holant.Tractable.AlgebraicComplex x)\n                  (@IntermediateField.toField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)\n                    Holant.Tractable.AlgebraicComplex))\n                Holant.Statements.BinaryDisequality._proof_1))\n            Holant.Statements.BinaryDisequality._proof_2))\n        (@Holant.LocalDrafts.MainChain.OriginalFamily.presentation s\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.equalityEdges))\n      (@Holant.LocalDrafts.MainChain.OriginalFamily.value s\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a G Holant.Statements.equalityEdges)","type":"{s : Nat} →\n  {a : Nat → Nat} →\n    (G :\n        (i : Fin s) →\n          Holant.Signature.{0}\n            (@Subtype.{1} Complex fun (x : Complex) =>\n              @Membership.mem.{0, 0} Complex\n                (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                  (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                    Complex.instCharZero))\n                (@SetLike.instMembership.{0, 0}\n                  (@IntermediateField.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero))\n                  Complex\n                  (@IntermediateField.instSetLike.{0, 0} Rat Complex Rat.instField Complex.instField\n                    (@DivisionRing.toRatAlgebra.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)\n                      Complex.instCharZero)))\n                Holant.Tractable.AlgebraicComplex x)\n            (a (@Fin.val s i))) →\n      Prop"},{"category":"flagships","display_name":"MatchgateWidth.Paper.claim_10_10","family":"matchgate-width","import":"Counting.MatchgateWidth.PaperStatements","kind":"specification-definition","module":"Counting.MatchgateWidth.PaperStatements","name":"MatchgateWidth.Paper.claim_10_10","original_declaration":"MatchgateWidth.Paper.claim_10_10","readable_type":"Prop","role":"specification-definition","source_line":477,"source_path":"projects/matchgate-width/Counting/MatchgateWidth/PaperStatements.lean","source_sha256":"de03b9d884e704b60061297742612c48ccbea38835172452774cbb4fca01f5f9","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/matchgate-width/Counting/MatchgateWidth/PaperStatements.lean#L477","specification":"∀ {S : MatchgateWidth.LabelledShape} {t : Nat}\n  (p :\n    @MatchgateWidth.LabelledCommonPresentation S (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n      (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t)\n  (_hM :\n    @Eq.{1} Nat\n      (@Matrix.rank.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n        (MatchgateWidth.BooleanInput t) Complex\n        (@Pi.instFintype.{0, 0} (Fin t)\n          (fun (a : Fin t) => Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))) (instDecidableEqFin t)\n          (Fin.fintype t) fun (a : Fin t) => Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        Complex.instCommSemiring\n        (@MatchgateWidth.LabelledCommonPresentation.baseMatrix S\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n          (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p))\n      (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n  (P L :\n    @Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n      Complex.instSemiring\n      (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n        (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n        fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instAddCommMonoid)\n      (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex Complex\n        Complex.instSemiring Complex.instAddCommMonoid (@Semiring.toModule.{0} Complex Complex.instSemiring)))\n  (_hP :\n    @Membership.mem.{0, 0}\n      (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n        Complex.instSemiring\n        (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n          (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n          fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instAddCommMonoid)\n        (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n          Complex Complex.instSemiring Complex.instAddCommMonoid (@Semiring.toModule.{0} Complex Complex.instSemiring)))\n      (Set.{0}\n        (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n          Complex.instSemiring\n          (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n            fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instAddCommMonoid)\n          (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n            Complex Complex.instSemiring Complex.instAddCommMonoid\n            (@Semiring.toModule.{0} Complex Complex.instSemiring))))\n      (@Set.instMembership.{0}\n        (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n          Complex.instSemiring\n          (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n            fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instAddCommMonoid)\n          (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n            Complex Complex.instSemiring Complex.instAddCommMonoid\n            (@Semiring.toModule.{0} Complex Complex.instSemiring))))\n      (@MatchgateWidth.allLeftRealizedSupports S\n        (@MatchgateWidth.LabelledCommonPresentation.language S\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n          (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p)\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n      P)\n  (_hL :\n    @Membership.mem.{0, 0}\n      (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n        Complex.instSemiring\n        (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n          (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n          fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instAddCommMonoid)\n        (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n          Complex Complex.instSemiring Complex.instAddCommMonoid (@Semiring.toModule.{0} Complex Complex.instSemiring)))\n      (Set.{0}\n        (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n          Complex.instSemiring\n          (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n            fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instAddCommMonoid)\n          (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n            Complex Complex.instSemiring Complex.instAddCommMonoid\n            (@Semiring.toModule.{0} Complex Complex.instSemiring))))\n      (@Set.instMembership.{0}\n        (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n          Complex.instSemiring\n          (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n            fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instAddCommMonoid)\n          (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n            Complex Complex.instSemiring Complex.instAddCommMonoid\n            (@Semiring.toModule.{0} Complex Complex.instSemiring))))\n      (@MatchgateWidth.allLeftRealizedSupports S\n        (@MatchgateWidth.LabelledCommonPresentation.language S\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n          (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p)\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      L)\n  (_hLP :\n    Not\n      (@LE.le.{0}\n        (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n          Complex.instSemiring\n          (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n            fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instAddCommMonoid)\n          (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n            Complex Complex.instSemiring Complex.instAddCommMonoid\n            (@Semiring.toModule.{0} Complex Complex.instSemiring)))\n        (@Preorder.toLE.{0}\n          (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n            Complex.instSemiring\n            (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n              (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n              fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instAddCommMonoid)\n            (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n              Complex Complex.instSemiring Complex.instAddCommMonoid\n              (@Semiring.toModule.{0} Complex Complex.instSemiring)))\n          (@PartialOrder.toPreorder.{0}\n            (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n              Complex.instSemiring\n              (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n                fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) =>\n                Complex.instAddCommMonoid)\n              (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n                Complex Complex.instSemiring Complex.instAddCommMonoid\n                (@Semiring.toModule.{0} Complex Complex.instSemiring)))\n            (@Submodule.instPartialOrder.{0, 0} Complex\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex) Complex.instSemiring\n              (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n                fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) =>\n                Complex.instAddCommMonoid)\n              (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n                Complex Complex.instSemiring Complex.instAddCommMonoid\n                (@Semiring.toModule.{0} Complex Complex.instSemiring)))))\n        L P))\n  (pPlus pMinus ell : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n  (_hplus :\n    @Ne.{1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex) pPlus\n      (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex) (nat_lit 0)\n        (@Zero.toOfNat0.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n          (@Pi.instZero.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n            fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instZero))))\n  (_hminus :\n    @Ne.{1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex) pMinus\n      (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex) (nat_lit 0)\n        (@Zero.toOfNat0.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n          (@Pi.instZero.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n            fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instZero))))\n  (_hell :\n    @Ne.{1} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex) ell\n      (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex) (nat_lit 0)\n        (@Zero.toOfNat0.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n          (@Pi.instZero.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n            fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instZero))))\n  (_hplus_mem :\n    @Membership.mem.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n      (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n        Complex.instSemiring\n        (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n          (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n          fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instAddCommMonoid)\n        (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n          Complex Complex.instSemiring Complex.instAddCommMonoid (@Semiring.toModule.{0} Complex Complex.instSemiring)))\n      (@SetLike.instMembership.{0, 0}\n        (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n          Complex.instSemiring\n          (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n            fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instAddCommMonoid)\n          (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n            Complex Complex.instSemiring Complex.instAddCommMonoid\n            (@Semiring.toModule.{0} Complex Complex.instSemiring)))\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n        (@Submodule.setLike.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n          Complex.instSemiring\n          (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n            fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instAddCommMonoid)\n          (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n            Complex Complex.instSemiring Complex.instAddCommMonoid\n            (@Semiring.toModule.{0} Complex Complex.instSemiring))))\n      (@MatchgateWidth.primitiveParityEndpoint.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n        (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t\n        (@MatchgateWidth.LabelledCommonPresentation.baseMatrix S\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n          (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p)\n        P (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n      pPlus)\n  (_hminus_mem :\n    @Membership.mem.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n      (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n        Complex.instSemiring\n        (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n          (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n          fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instAddCommMonoid)\n        (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n          Complex Complex.instSemiring Complex.instAddCommMonoid (@Semiring.toModule.{0} Complex Complex.instSemiring)))\n      (@SetLike.instMembership.{0, 0}\n        (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n          Complex.instSemiring\n          (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n            fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instAddCommMonoid)\n          (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n            Complex Complex.instSemiring Complex.instAddCommMonoid\n            (@Semiring.toModule.{0} Complex Complex.instSemiring)))\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n        (@Submodule.setLike.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n          Complex.instSemiring\n          (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n            fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instAddCommMonoid)\n          (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n            Complex Complex.instSemiring Complex.instAddCommMonoid\n            (@Semiring.toModule.{0} Complex Complex.instSemiring))))\n      (@MatchgateWidth.primitiveParityEndpoint.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n        (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t\n        (@MatchgateWidth.LabelledCommonPresentation.baseMatrix S\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n          (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p)\n        P (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      pMinus)\n  (_hell_mem :\n    @Membership.mem.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n      (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n        Complex.instSemiring\n        (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n          (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n          fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instAddCommMonoid)\n        (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n          Complex Complex.instSemiring Complex.instAddCommMonoid (@Semiring.toModule.{0} Complex Complex.instSemiring)))\n      (@SetLike.instMembership.{0, 0}\n        (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n          Complex.instSemiring\n          (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n            fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instAddCommMonoid)\n          (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n            Complex Complex.instSemiring Complex.instAddCommMonoid\n            (@Semiring.toModule.{0} Complex Complex.instSemiring)))\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n        (@Submodule.setLike.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n          Complex.instSemiring\n          (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n            fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instAddCommMonoid)\n          (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n            Complex Complex.instSemiring Complex.instAddCommMonoid\n            (@Semiring.toModule.{0} Complex Complex.instSemiring))))\n      L ell),\n  have U :\n    Matrix.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex :=\n    @Matrix.vecCons.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) pPlus\n      (@Matrix.vecCons.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) pMinus\n        (@Matrix.vecCons.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n          (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) ell\n          (@Matrix.vecEmpty.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex))));\n  @Exists.{1}\n    (Matrix.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex)\n    fun\n      (N :\n        Matrix.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex) =>\n    And\n      (@Eq.{1} Nat\n        (@Matrix.rank.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n          (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex.instCommSemiring U)\n        (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n      (And\n        (@Eq.{1}\n          (Matrix.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex)\n          (@HMul.hMul.{0, 0, 0}\n            (Matrix.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex)\n            (Matrix.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex)\n            (Matrix.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex)\n            (@Matrix.instHMulOfFintypeOfMulOfAddCommMonoid.{0, 0, 0, 0}\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n              (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex.instMul\n              Complex.instAddCommMonoid)\n            U N)\n          (@OfNat.ofNat.{0}\n            (Matrix.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex)\n            (nat_lit 1)\n            (@One.toOfNat1.{0}\n              (Matrix.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex)\n              (@Matrix.one.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n                (instDecidableEqFin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex.instZero\n                Complex.instOne))))\n        (And\n          (@Eq.{1}\n            (Matrix.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex)\n            (@HMul.hMul.{0, 0, 0}\n              (Matrix.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex)\n              (Matrix.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex)\n              (Matrix.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex)\n              (@Matrix.instHMulOfFintypeOfMulOfAddCommMonoid.{0, 0, 0, 0}\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n                (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex.instMul\n                Complex.instAddCommMonoid)\n              N U)\n            (@OfNat.ofNat.{0}\n              (Matrix.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex)\n              (nat_lit 1)\n              (@One.toOfNat1.{0}\n                (Matrix.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                  (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex)\n                (@Matrix.one.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n                  (instDecidableEqFin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex.instZero\n                  Complex.instOne))))\n          (And\n            (Or\n              (@MatchgateWidth.BinarySmallCover t\n                (@MatchgateWidth.LabelledCommonPresentation.baseMatrix S\n                  (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                  (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p))\n              (∀ (a b c : Nat)\n                (I :\n                  MatchgateWidth.AllLeftGadget S a b c (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))),\n                @MatchgateWidth.AllLeftGadget.Connected S a b c\n                    (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) I →\n                  Nonempty.{1}\n                      (@MatchgateWidth.AllLeftGadget.OrderedPlanar S a b c\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) I) →\n                    MatchgateWidth.PartialMonomial\n                      (MatchgateWidth.binaryContextCoordinates N\n                        (@MatchgateWidth.AllLeftGadget.value S a b c\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                          (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) I\n                          (@MatchgateWidth.LabelledCommonPresentation.language S\n                            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                            (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p)))))\n            (∀ (a b c : Nat)\n              (I : MatchgateWidth.AllLeftGadget S a b c (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))),\n              @MatchgateWidth.AllLeftGadget.Connected S a b c\n                  (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) I →\n                Nonempty.{1}\n                    (@MatchgateWidth.AllLeftGadget.OrderedPlanar S a b c\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) I) →\n                  Not\n                      (MatchgateWidth.PartialMonomial\n                        (MatchgateWidth.binaryContextCoordinates N\n                          (@MatchgateWidth.AllLeftGadget.value S a b c\n                            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                            (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) I\n                            (@MatchgateWidth.LabelledCommonPresentation.language S\n                              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                              (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p)))) →\n                    @Exists.{1} Nat fun (w : Nat) =>\n                      And (@LE.le.{0} Nat instLENat w (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                        (@Exists.{1}\n                          (@MatchgateWidth.LabelledCommonPresentation S\n                            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                            (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) w)\n                          fun\n                            (q :\n                              @MatchgateWidth.LabelledCommonPresentation S\n                                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                                (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) w) =>\n                          And\n                            (@Eq.{1}\n                              ((l : MatchgateWidth.LabelledShape.LeftLabel S) →\n                                (Fin (MatchgateWidth.LabelledShape.leftArity S l) →\n                                    Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) →\n                                  Complex)\n                              (@MatchgateWidth.LabelledCommonPresentation.left S\n                                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                                (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) w q)\n                              (@MatchgateWidth.LabelledCommonPresentation.left S\n                                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                                (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p))\n                            (And\n                              (@Eq.{1}\n                                (MatchgateWidth.LabelledLanguage S\n                                  (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))))\n                                (@MatchgateWidth.LabelledCommonPresentation.language S\n                                  (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                                  (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) w q)\n                                (@MatchgateWidth.LabelledCommonPresentation.language S\n                                  (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                                  (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p))\n                              (@MatchgateWidth.ExactlyLabelledEquivalent S S\n                                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                                (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                                (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                                (@MatchgateWidth.LabelledCommonPresentation.language S\n                                  (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                                  (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p)\n                                (@MatchgateWidth.LabelledCommonPresentation.language S\n                                  (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                                  (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) w\n                                  q))))))))","type":"Prop"},{"category":"flagships","display_name":"MatchgateWidth.Paper.claim_10_5","family":"matchgate-width","import":"Counting.MatchgateWidth.PaperStatements","kind":"specification-definition","module":"Counting.MatchgateWidth.PaperStatements","name":"MatchgateWidth.Paper.claim_10_5","original_declaration":"MatchgateWidth.Paper.claim_10_5","readable_type":"Prop","role":"specification-definition","source_line":360,"source_path":"projects/matchgate-width/Counting/MatchgateWidth/PaperStatements.lean","source_sha256":"de03b9d884e704b60061297742612c48ccbea38835172452774cbb4fca01f5f9","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/matchgate-width/Counting/MatchgateWidth/PaperStatements.lean#L360","specification":"∀ {A : Type u_1} [inst : Fintype.{u_1} A] {r t : Nat} (M : Matrix.{u_1, 0, 0} A (MatchgateWidth.BooleanInput t) Complex)\n  (P : Matrix.{0, 0, 0} (MatchgateWidth.BooleanInput r) (MatchgateWidth.BooleanInput t) Complex)\n  (_hP : @MatchgateWidth.ExactMatchgateMatrix r t P)\n  (_hr :\n    @Eq.{1} Nat\n      (@Matrix.rank.{0, 0, 0} (MatchgateWidth.BooleanInput r) (MatchgateWidth.BooleanInput t) Complex\n        (@Pi.instFintype.{0, 0} (Fin t)\n          (fun (a : Fin t) => Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))) (instDecidableEqFin t)\n          (Fin.fintype t) fun (a : Fin t) => Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        Complex.instCommSemiring P)\n      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) r))\n  (_hcover :\n    @LE.le.{0}\n      (@Submodule.{0, 0} Complex (MatchgateWidth.BooleanInput t → Complex) Complex.instSemiring\n        (@Pi.addCommMonoid.{0, 0} (MatchgateWidth.BooleanInput t) (fun (a : MatchgateWidth.BooleanInput t) => Complex)\n          fun (i : MatchgateWidth.BooleanInput t) => Complex.instAddCommMonoid)\n        (@Pi.Function.module.{0, 0, 0} (MatchgateWidth.BooleanInput t) Complex Complex Complex.instSemiring\n          Complex.instAddCommMonoid (@Semiring.toModule.{0} Complex Complex.instSemiring)))\n      (@Preorder.toLE.{0}\n        (@Submodule.{0, 0} Complex (MatchgateWidth.BooleanInput t → Complex) Complex.instSemiring\n          (@Pi.addCommMonoid.{0, 0} (MatchgateWidth.BooleanInput t) (fun (a : MatchgateWidth.BooleanInput t) => Complex)\n            fun (i : MatchgateWidth.BooleanInput t) => Complex.instAddCommMonoid)\n          (@Pi.Function.module.{0, 0, 0} (MatchgateWidth.BooleanInput t) Complex Complex Complex.instSemiring\n            Complex.instAddCommMonoid (@Semiring.toModule.{0} Complex Complex.instSemiring)))\n        (@PartialOrder.toPreorder.{0}\n          (@Submodule.{0, 0} Complex (MatchgateWidth.BooleanInput t → Complex) Complex.instSemiring\n            (@Pi.addCommMonoid.{0, 0} (MatchgateWidth.BooleanInput t)\n              (fun (a : MatchgateWidth.BooleanInput t) => Complex) fun (i : MatchgateWidth.BooleanInput t) =>\n              Complex.instAddCommMonoid)\n            (@Pi.Function.module.{0, 0, 0} (MatchgateWidth.BooleanInput t) Complex Complex Complex.instSemiring\n              Complex.instAddCommMonoid (@Semiring.toModule.{0} Complex Complex.instSemiring)))\n          (@Submodule.instPartialOrder.{0, 0} Complex (MatchgateWidth.BooleanInput t → Complex) Complex.instSemiring\n            (@Pi.addCommMonoid.{0, 0} (MatchgateWidth.BooleanInput t)\n              (fun (a : MatchgateWidth.BooleanInput t) => Complex) fun (i : MatchgateWidth.BooleanInput t) =>\n              Complex.instAddCommMonoid)\n            (@Pi.Function.module.{0, 0, 0} (MatchgateWidth.BooleanInput t) Complex Complex Complex.instSemiring\n              Complex.instAddCommMonoid (@Semiring.toModule.{0} Complex Complex.instSemiring)))))\n      (@Submodule.span.{0, 0} Complex (MatchgateWidth.BooleanInput t → Complex) Complex.instSemiring\n        (@Pi.addCommMonoid.{0, 0} (MatchgateWidth.BooleanInput t) (fun (a : MatchgateWidth.BooleanInput t) => Complex)\n          fun (i : MatchgateWidth.BooleanInput t) => Complex.instAddCommMonoid)\n        (@Pi.Function.module.{0, 0, 0} (MatchgateWidth.BooleanInput t) Complex Complex Complex.instSemiring\n          Complex.instAddCommMonoid (@Semiring.toModule.{0} Complex Complex.instSemiring))\n        (@Set.range.{0, u_1 + 1} (MatchgateWidth.BooleanInput t → Complex) A\n          (@Matrix.row.{0, u_1, 0} A (MatchgateWidth.BooleanInput t) Complex M)))\n      (@MatchgateWidth.orderedRowSpace.{0} Complex Complex.commRing r t P)),\n  @Exists.{u_1 + 1} (Matrix.{u_1, 0, 0} A (MatchgateWidth.BooleanInput r) Complex)\n    fun (N : Matrix.{u_1, 0, 0} A (MatchgateWidth.BooleanInput r) Complex) =>\n    And\n      (@Eq.{u_1 + 1} (Matrix.{u_1, 0, 0} A (MatchgateWidth.BooleanInput t) Complex) M\n        (@HMul.hMul.{u_1, 0, u_1} (Matrix.{u_1, 0, 0} A (MatchgateWidth.BooleanInput r) Complex)\n          (Matrix.{0, 0, 0} (MatchgateWidth.BooleanInput r) (MatchgateWidth.BooleanInput t) Complex)\n          (Matrix.{u_1, 0, 0} A (MatchgateWidth.BooleanInput t) Complex)\n          (@Matrix.instHMulOfFintypeOfMulOfAddCommMonoid.{0, u_1, 0, 0} A (MatchgateWidth.BooleanInput r)\n            (MatchgateWidth.BooleanInput t) Complex\n            (@Pi.instFintype.{0, 0} (Fin r)\n              (fun (a : Fin r) => Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n              (instDecidableEqFin r) (Fin.fintype r) fun (a : Fin r) =>\n              Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            Complex.instMul Complex.instAddCommMonoid)\n          N P))\n      (And\n        (∀ (k : Nat) (F : (Fin k → A) → Complex),\n          @MatchgateWidth.ExactMatchgate (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) k t)\n              (@MatchgateWidth.leftBooleanLift.{0, u_1} Complex A Complex.instField t inst M k F) →\n            @MatchgateWidth.ExactMatchgate (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) k r)\n              (@MatchgateWidth.leftBooleanLift.{0, u_1} Complex A Complex.instField r inst N k F))\n        (∀ (k : Nat)\n          (H :\n            MatchgateWidth.BooleanTable.{0} (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) k t)\n              Complex),\n          @MatchgateWidth.ExactMatchgate (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) k t) H →\n            And\n              (@MatchgateWidth.ExactMatchgate (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) k r)\n                (@MatchgateWidth.blockwiseTransform.{0} Complex Complex.instField r t P k H))\n              (@Eq.{u_1 + 1} ((Fin k → A) → Complex)\n                (@MatchgateWidth.rightBooleanRestriction.{0, u_1} Complex A Complex.instField t inst M k H)\n                (@MatchgateWidth.rightBooleanRestriction.{0, u_1} Complex A Complex.instField r inst N k\n                  (@MatchgateWidth.blockwiseTransform.{0} Complex Complex.instField r t P k H)))))","type":"Prop"},{"category":"flagships","display_name":"MatchgateWidth.Paper.claim_10_7","family":"matchgate-width","import":"Counting.MatchgateWidth.PaperStatements","kind":"specification-definition","module":"Counting.MatchgateWidth.PaperStatements","name":"MatchgateWidth.Paper.claim_10_7","original_declaration":"MatchgateWidth.Paper.claim_10_7","readable_type":"Prop","role":"specification-definition","source_line":383,"source_path":"projects/matchgate-width/Counting/MatchgateWidth/PaperStatements.lean","source_sha256":"de03b9d884e704b60061297742612c48ccbea38835172452774cbb4fca01f5f9","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/matchgate-width/Counting/MatchgateWidth/PaperStatements.lean#L383","specification":"∀ {S : MatchgateWidth.LabelledShape} {t : Nat}\n  (p :\n    @MatchgateWidth.LabelledCommonPresentation S (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n      (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t)\n  (_hM :\n    @Eq.{1} Nat\n      (@Matrix.rank.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n        (MatchgateWidth.BooleanInput t) Complex\n        (@Pi.instFintype.{0, 0} (Fin t)\n          (fun (a : Fin t) => Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))) (instDecidableEqFin t)\n          (Fin.fintype t) fun (a : Fin t) => Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        Complex.instCommSemiring\n        (@MatchgateWidth.LabelledCommonPresentation.baseMatrix S\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n          (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p))\n      (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n  (_hleft :\n    @MatchgateWidth.LeftPortDeficient S\n      (@MatchgateWidth.LabelledCommonPresentation.language S\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n        (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p))\n  (_hright :\n    @MatchgateWidth.RightPortDeficient S\n      (@MatchgateWidth.LabelledCommonPresentation.language S\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n        (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p))\n  (_hessright :\n    @MatchgateWidth.RightSupportEssential S\n      (@MatchgateWidth.LabelledCommonPresentation.language S\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n        (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p))\n  (_hprime : @MatchgateWidth.AllLeftConnectionPrime S t p),\n  And (@MatchgateWidth.AllLeftWidthThreeCompression S t p)\n    (∀\n      (P Q :\n        @Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n          Complex.instSemiring\n          (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n            fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instAddCommMonoid)\n          (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n            Complex Complex.instSemiring Complex.instAddCommMonoid\n            (@Semiring.toModule.{0} Complex Complex.instSemiring))),\n      @Membership.mem.{0, 0}\n          (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n            Complex.instSemiring\n            (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n              (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n              fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex.instAddCommMonoid)\n            (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n              Complex Complex.instSemiring Complex.instAddCommMonoid\n              (@Semiring.toModule.{0} Complex Complex.instSemiring)))\n          (Set.{0}\n            (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n              Complex.instSemiring\n              (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n                fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) =>\n                Complex.instAddCommMonoid)\n              (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n                Complex Complex.instSemiring Complex.instAddCommMonoid\n                (@Semiring.toModule.{0} Complex Complex.instSemiring))))\n          (@Set.instMembership.{0}\n            (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n              Complex.instSemiring\n              (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n                fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) =>\n                Complex.instAddCommMonoid)\n              (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n                Complex Complex.instSemiring Complex.instAddCommMonoid\n                (@Semiring.toModule.{0} Complex Complex.instSemiring))))\n          (@MatchgateWidth.allLeftRealizedSupports S\n            (@MatchgateWidth.LabelledCommonPresentation.language S\n              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n              (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p)\n            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n          P →\n        @Membership.mem.{0, 0}\n            (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n              Complex.instSemiring\n              (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n                fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) =>\n                Complex.instAddCommMonoid)\n              (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) Complex\n                Complex Complex.instSemiring Complex.instAddCommMonoid\n                (@Semiring.toModule.{0} Complex Complex.instSemiring)))\n            (Set.{0}\n              (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n                Complex.instSemiring\n                (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                  (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n                  fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) =>\n                  Complex.instAddCommMonoid)\n                (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                  Complex Complex Complex.instSemiring Complex.instAddCommMonoid\n                  (@Semiring.toModule.{0} Complex Complex.instSemiring))))\n            (@Set.instMembership.{0}\n              (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n                Complex.instSemiring\n                (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                  (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n                  fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) =>\n                  Complex.instAddCommMonoid)\n                (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                  Complex Complex Complex.instSemiring Complex.instAddCommMonoid\n                  (@Semiring.toModule.{0} Complex Complex.instSemiring))))\n            (@MatchgateWidth.allLeftRealizedSupports S\n              (@MatchgateWidth.LabelledCommonPresentation.language S\n                (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p)\n              (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n            Q →\n          @Ne.{1}\n              (@Submodule.{0, 0} Complex (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) → Complex)\n                Complex.instSemiring\n                (@Pi.addCommMonoid.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                  (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) => Complex)\n                  fun (i : Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) =>\n                  Complex.instAddCommMonoid)\n                (@Pi.Function.module.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                  Complex Complex Complex.instSemiring Complex.instAddCommMonoid\n                  (@Semiring.toModule.{0} Complex Complex.instSemiring)))\n              P Q →\n            @Exists.{1}\n              (Matrix.{0, 0, 0}\n                (MatchgateWidth.BooleanInput (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                (MatchgateWidth.BooleanInput t) Complex)\n              fun\n                (H :\n                  Matrix.{0, 0, 0}\n                    (MatchgateWidth.BooleanInput (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                    (MatchgateWidth.BooleanInput t) Complex) =>\n              And\n                (@MatchgateWidth.ExactMatchgateMatrix (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) t H)\n                (And\n                  (@Eq.{1} Nat\n                    (@Matrix.rank.{0, 0, 0}\n                      (MatchgateWidth.BooleanInput (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                      (MatchgateWidth.BooleanInput t) Complex\n                      (@Pi.instFintype.{0, 0} (Fin t)\n                        (fun (a : Fin t) => Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                        (instDecidableEqFin t) (Fin.fintype t) fun (a : Fin t) =>\n                        Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                      Complex.instCommSemiring H)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 4) (instOfNatNat (nat_lit 4))))\n                  (@Exists.{1}\n                    (@MatchgateWidth.LabelledCommonPresentation S\n                      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                      (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                    fun\n                      (q :\n                        @MatchgateWidth.LabelledCommonPresentation S\n                          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                          (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))) =>\n                    And\n                      (@Eq.{1}\n                        (Matrix.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                          (MatchgateWidth.BooleanInput t) Complex)\n                        (@MatchgateWidth.LabelledCommonPresentation.baseMatrix S\n                          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                          (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p)\n                        (@HMul.hMul.{0, 0, 0}\n                          (Matrix.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                            (MatchgateWidth.BooleanInput (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                            Complex)\n                          (Matrix.{0, 0, 0}\n                            (MatchgateWidth.BooleanInput (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                            (MatchgateWidth.BooleanInput t) Complex)\n                          (Matrix.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                            (MatchgateWidth.BooleanInput t) Complex)\n                          (@Matrix.instHMulOfFintypeOfMulOfAddCommMonoid.{0, 0, 0, 0}\n                            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                            (MatchgateWidth.BooleanInput (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                            (MatchgateWidth.BooleanInput t) Complex\n                            (@Pi.instFintype.{0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                              (fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))) =>\n                                Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                              (instDecidableEqFin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                              (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                              fun (a : Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))) =>\n                              Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                            Complex.instMul Complex.instAddCommMonoid)\n                          (@MatchgateWidth.LabelledCommonPresentation.baseMatrix S\n                            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                            (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) q)\n                          H))\n                      (And\n                        (@Eq.{1}\n                          ((l : MatchgateWidth.LabelledShape.LeftLabel S) →\n                            (Fin (MatchgateWidth.LabelledShape.leftArity S l) →\n                                Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) →\n                              Complex)\n                          (@MatchgateWidth.LabelledCommonPresentation.left S\n                            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                            (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) q)\n                          (@MatchgateWidth.LabelledCommonPresentation.left S\n                            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                            (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p))\n                        (And\n                          (@Eq.{1}\n                            (MatchgateWidth.LabelledLanguage S\n                              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))))\n                            (@MatchgateWidth.LabelledCommonPresentation.language S\n                              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                              (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                              (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) q)\n                            (@MatchgateWidth.LabelledCommonPresentation.language S\n                              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                              (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p))\n                          (@MatchgateWidth.ExactlyLabelledEquivalent S S\n                            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                            (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                            (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                            (@MatchgateWidth.LabelledCommonPresentation.language S\n                              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                              (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p)\n                            (@MatchgateWidth.LabelledCommonPresentation.language S\n                              (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                              (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                              (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) q)))))))","type":"Prop"},{"category":"flagships","display_name":"MatchgateWidth.Paper.claim_3_1","family":"matchgate-width","import":"Counting.MatchgateWidth.PaperStatements","kind":"specification-definition","module":"Counting.MatchgateWidth.PaperStatements","name":"MatchgateWidth.Paper.claim_3_1","original_declaration":"MatchgateWidth.Paper.claim_3_1","readable_type":"Prop","role":"specification-definition","source_line":34,"source_path":"projects/matchgate-width/Counting/MatchgateWidth/PaperStatements.lean","source_sha256":"de03b9d884e704b60061297742612c48ccbea38835172452774cbb4fca01f5f9","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/matchgate-width/Counting/MatchgateWidth/PaperStatements.lean#L34","specification":"∀\n  (C :\n    (k : Nat) →\n      MatchgateWidth.LabelledInstanceClass\n        (MatchgateWidth.starLanguageShape\n          (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))))\n  (_hC :\n    ∀ (k : Nat),\n      @MatchgateWidth.ContainsOrderedPlanar\n        (MatchgateWidth.starLanguageShape\n          (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n        (C k))\n  (k : Nat) (_hk : @LE.le.{0} Nat instLENat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k),\n  And (MatchgateWidth.IntegerMainConclusions k _hk)\n    (And\n      (And\n        (@Eq.{1} Nat\n          (@MatchgateWidth.booleanParity\n            (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n              (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k)\n              (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (MatchgateWidth.controlledLabelledCode k\n              (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) (nat_lit 0)\n                (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                  MatchgateWidth.Paper.claim_3_1._proof_1 (nat_lit 0)))))\n          (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n        (And\n          (@Eq.{1} Nat\n            (@MatchgateWidth.booleanParity\n              (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n                (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                  (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k)\n                (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n              (MatchgateWidth.controlledLabelledCode k\n                (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) (nat_lit 1)\n                  (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                    MatchgateWidth.Paper.claim_3_1._proof_1 (nat_lit 1)))))\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (@Eq.{1} Nat\n            (@MatchgateWidth.booleanParity\n              (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n                (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                  (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k)\n                (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n              (MatchgateWidth.controlledLabelledCode k\n                (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) (nat_lit 2)\n                  (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                    MatchgateWidth.Paper.claim_3_1._proof_1 (nat_lit 2)))))\n            (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))))\n      (And\n        (@MatchgateWidth.RationalCoefficientPresentation\n          (MatchgateWidth.starLanguageShape\n            (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n              (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n          (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n          (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n            (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n              (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k)\n            (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n          (MatchgateWidth.integerRationalPresentation k _hk))\n        (And\n          (@MatchgateWidth.RationalGraphPresentation\n            (MatchgateWidth.starLanguageShape\n              (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n                (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n              (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k)\n              (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (MatchgateWidth.integerRationalPresentation k _hk))\n          (And\n            (@Eq.{1} Nat\n              (@Matrix.rank.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                (MatchgateWidth.BooleanInput\n                  (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n                    (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                      (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))))\n                Complex\n                (@Pi.instFintype.{0, 0}\n                  (Fin\n                    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))))\n                  (fun\n                      (a :\n                        Fin\n                          (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n                            (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                              (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                              (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k)\n                            (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))) =>\n                    Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                  (instDecidableEqFin\n                    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))))\n                  (Fin.fintype\n                    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))))\n                  fun\n                    (a :\n                      Fin\n                        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n                          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k)\n                          (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))) =>\n                  Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                Complex.instCommSemiring\n                (@MatchgateWidth.LabelledCommonPresentation.baseMatrix\n                  (MatchgateWidth.starLanguageShape\n                    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n                  (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                  (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                  (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n                    (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                      (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                  (MatchgateWidth.integerRationalPresentation k _hk)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n            (And\n              (@Eq.{1}\n                (MatchgateWidth.LabelledLanguage\n                  (MatchgateWidth.starLanguageShape\n                    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n                  (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))))\n                (@MatchgateWidth.LabelledCommonPresentation.language\n                  (MatchgateWidth.starLanguageShape\n                    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n                  (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                  (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                  (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n                    (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                      (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k)\n                    (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                  (MatchgateWidth.integerRationalPresentation k _hk))\n                (MatchgateWidth.integerControlledLanguage k _hk))\n              (And\n                (@MatchgateWidth.IntegerPositiveDeficient\n                  (MatchgateWidth.starLanguageShape\n                    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n                      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n                  (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                  (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                  (@MatchgateWidth.LabelledCommonPresentation.language\n                    (MatchgateWidth.starLanguageShape\n                      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n                    (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                    (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                    (MatchgateWidth.integerRationalPresentation k _hk)))\n                (And\n                  (@MatchgateWidth.AllLeftMonomialFlag\n                    (MatchgateWidth.starLanguageShape\n                      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n                    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n                      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k)\n                      (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                    (MatchgateWidth.integerRationalPresentation k _hk)\n                    (@MatchgateWidth.qutritCoordinatePlane.{0} Complex Complex.instField\n                      (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) (nat_lit 2)\n                        (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                          MatchgateWidth.Paper.claim_3_1._proof_1 (nat_lit 2))))\n                    (@MatchgateWidth.qutritCoordinateRay.{0} Complex Complex.instField\n                      (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) (nat_lit 2)\n                        (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                          MatchgateWidth.Paper.claim_3_1._proof_1 (nat_lit 2)))))\n                  (And\n                    (@MatchgateWidth.HasExactCommonWidthOn\n                      (MatchgateWidth.starLanguageShape\n                        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n                          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n                      (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                      (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) (C k)\n                      (MatchgateWidth.integerControlledLanguage k _hk) (MatchgateWidth.integerSourceMinimum C k))\n                    (And\n                      (∀ (r : Nat),\n                        @MatchgateWidth.HasExactCommonWidthOn\n                            (MatchgateWidth.starLanguageShape\n                              (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n                                (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n                            (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                            (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) (C k)\n                            (MatchgateWidth.integerControlledLanguage k _hk) r →\n                          @LE.le.{0} Nat instLENat (MatchgateWidth.integerSourceMinimum C k) r)\n                      (And\n                        (@LE.le.{0} Nat instLENat\n                          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k)\n                          (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n                            (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n                              (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)\n                                (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n                                (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                                  (Nat.choose (MatchgateWidth.integerSourceMinimum C k)\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))))\n                              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n                            (Nat.choose\n                              (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) k\n                                (MatchgateWidth.integerSourceMinimum C k))\n                              (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))))\n                        (And\n                          (@LE.le.{0} Nat instLENat\n                            (@Nat.ceil.{0} Real Real.semiring Real.partialOrder\n                              (@FloorRing.toFloorSemiring.{0} Real Real.instRing Real.linearOrder Real.instFloorRing)\n                              (Real.sqrt\n                                (@HDiv.hDiv.{0, 0, 0} Real Real Real\n                                  (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n                                  (@HSub.hSub.{0, 0, 0} Real Real Real (@instHSub.{0} Real Real.instSub)\n                                    (@HPow.hPow.{0, 0, 0} Real Nat Real\n                                      (@instHPow.{0, 0} Real Nat\n                                        (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid)))\n                                      (@OfNat.ofNat.{0} Real (nat_lit 2)\n                                        (@instOfNatAtLeastTwo.{0} Real (nat_lit 2) Real.instNatCast\n                                          MatchgateWidth.Paper.claim_3_1._proof_2))\n                                      k)\n                                    (@OfNat.ofNat.{0} Real (nat_lit 3)\n                                      (@instOfNatAtLeastTwo.{0} Real (nat_lit 3) Real.instNatCast\n                                        MatchgateWidth.Paper.claim_3_1._proof_3)))\n                                  (@HAdd.hAdd.{0, 0, 0} Real Real Real (@instHAdd.{0} Real Real.instAdd)\n                                    (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))\n                                    (@HDiv.hDiv.{0, 0, 0} Real Real Real\n                                      (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n                                      (@HPow.hPow.{0, 0, 0} Real Nat Real\n                                        (@instHPow.{0, 0} Real Nat\n                                          (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid)))\n                                        (@Nat.cast.{0} Real Real.instNatCast k)\n                                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                                      (@OfNat.ofNat.{0} Real (nat_lit 2)\n                                        (@instOfNatAtLeastTwo.{0} Real (nat_lit 2) Real.instNatCast\n                                          MatchgateWidth.Paper.claim_3_1._proof_2)))))))\n                            (MatchgateWidth.integerSourceMinimum C k))\n                          (And\n                            (@LE.le.{0} Nat instLENat (MatchgateWidth.integerSourceMinimum C k)\n                              (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n                                (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                                  (@instHPow.{0, 0} Nat Nat\n                                    (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k)\n                                (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))))\n                            (And\n                              (@MatchgateWidth.AllLeftFlagNormalForm\n                                (MatchgateWidth.starLanguageShape\n                                  (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n                                (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n                                  (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                                    (@instHPow.{0, 0} Nat Nat\n                                      (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n                                    (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k)\n                                  (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                                (MatchgateWidth.integerRationalPresentation k _hk)\n                                (@MatchgateWidth.qutritCoordinatePlane.{0} Complex Complex.instField\n                                  (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                                    (nat_lit 2)\n                                    (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                                      MatchgateWidth.Paper.claim_3_1._proof_1 (nat_lit 2))))\n                                (@MatchgateWidth.qutritCoordinateRay.{0} Complex Complex.instField\n                                  (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n                                    (nat_lit 2)\n                                    (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))\n                                      MatchgateWidth.Paper.claim_3_1._proof_1 (nat_lit 2)))))\n                              (MatchgateWidth.PaperOmega\n                                (fun (k : Nat) =>\n                                  @Nat.cast.{0} Real Real.instNatCast (MatchgateWidth.integerSourceMinimum C k))\n                                fun (k : Nat) =>\n                                @HDiv.hDiv.{0, 0, 0} Real Real Real\n                                  (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n                                  (Real.rpow\n                                    (@OfNat.ofNat.{0} Real (nat_lit 2)\n                                      (@instOfNatAtLeastTwo.{0} Real (nat_lit 2) Real.instNatCast\n                                        MatchgateWidth.Paper.claim_3_1._proof_2))\n                                    (@HDiv.hDiv.{0, 0, 0} Real Real Real\n                                      (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n                                      (@Nat.cast.{0} Real Real.instNatCast k)\n                                      (@OfNat.ofNat.{0} Real (nat_lit 2)\n                                        (@instOfNatAtLeastTwo.{0} Real (nat_lit 2) Real.instNatCast\n                                          MatchgateWidth.Paper.claim_3_1._proof_2))))\n                                  (@Nat.cast.{0} Real Real.instNatCast k)))))))))))))))","type":"Prop"},{"category":"flagships","display_name":"MatchgateWidth.Paper.claim_3_2","family":"matchgate-width","import":"Counting.MatchgateWidth.PaperStatements","kind":"specification-definition","module":"Counting.MatchgateWidth.PaperStatements","name":"MatchgateWidth.Paper.claim_3_2","original_declaration":"MatchgateWidth.Paper.claim_3_2","readable_type":"Prop","role":"specification-definition","source_line":62,"source_path":"projects/matchgate-width/Counting/MatchgateWidth/PaperStatements.lean","source_sha256":"de03b9d884e704b60061297742612c48ccbea38835172452774cbb4fca01f5f9","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/matchgate-width/Counting/MatchgateWidth/PaperStatements.lean#L62","specification":"∀ (C : (S : MatchgateWidth.LabelledShape) → MatchgateWidth.LabelledInstanceClass S)\n  (_hC : ∀ (S : MatchgateWidth.LabelledShape), @MatchgateWidth.ContainsOrderedPlanar S (C S)),\n  Not\n    (@Exists.{1} (Nat → Nat) fun (h : Nat → Nat) =>\n      ∀ (S : MatchgateWidth.LabelledShape) (E : Type) (x : Fintype.{0} E),\n        Nonempty.{1} E →\n          ∀ (r : Nat) (p : @MatchgateWidth.LabelledCommonPresentation S E x r),\n            @MatchgateWidth.RationalCoefficientPresentation S E x r p →\n              @MatchgateWidth.RationalGraphPresentation S E x r p →\n                @MatchgateWidth.IntegerPositiveDeficient S E x\n                    (@MatchgateWidth.LabelledCommonPresentation.language S E x r p) →\n                  @Exists.{1} Nat fun (s : Nat) =>\n                    And\n                      (@MatchgateWidth.HasExactCommonWidthOn S E x (C S)\n                        (@MatchgateWidth.LabelledCommonPresentation.language S E x r p) s)\n                      (@LE.le.{0} Nat instLENat s (h (@Fintype.card.{0} E x))))","type":"Prop"},{"category":"flagships","display_name":"MatchgateWidth.Paper.claim_3_3","family":"matchgate-width","import":"Counting.MatchgateWidth.PaperStatements","kind":"specification-definition","module":"Counting.MatchgateWidth.PaperStatements","name":"MatchgateWidth.Paper.claim_3_3","original_declaration":"MatchgateWidth.Paper.claim_3_3","readable_type":"Prop","role":"specification-definition","source_line":73,"source_path":"projects/matchgate-width/Counting/MatchgateWidth/PaperStatements.lean","source_sha256":"de03b9d884e704b60061297742612c48ccbea38835172452774cbb4fca01f5f9","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/matchgate-width/Counting/MatchgateWidth/PaperStatements.lean#L73","specification":"∀ {S : MatchgateWidth.LabelledShape} {t : Nat}\n  (p :\n    @MatchgateWidth.LabelledCommonPresentation S (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n      (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t)\n  (_hM :\n    @Eq.{1} Nat\n      (@Matrix.rank.{0, 0, 0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n        (MatchgateWidth.BooleanInput t) Complex\n        (@Pi.instFintype.{0, 0} (Fin t)\n          (fun (a : Fin t) => Fin (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))) (instDecidableEqFin t)\n          (Fin.fintype t) fun (a : Fin t) => Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        Complex.instCommSemiring\n        (@MatchgateWidth.LabelledCommonPresentation.baseMatrix S\n          (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n          (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p))\n      (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n  (_hleft :\n    @MatchgateWidth.LeftPortDeficient S\n      (@MatchgateWidth.LabelledCommonPresentation.language S\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n        (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p))\n  (_hright :\n    @MatchgateWidth.RightPortDeficient S\n      (@MatchgateWidth.LabelledCommonPresentation.language S\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n        (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p))\n  (_hessleft :\n    @MatchgateWidth.LeftSupportEssential S\n      (@MatchgateWidth.LabelledCommonPresentation.language S\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n        (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p))\n  (_hessright :\n    @MatchgateWidth.RightSupportEssential S\n      (@MatchgateWidth.LabelledCommonPresentation.language S\n        (Fin (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n        (Fin.fintype (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3)))) t p)),\n  Or\n    (And (@MatchgateWidth.AllLeftRayAlternative S t p)\n      (And (Not (@MatchgateWidth.AllLeftMobileAlternative S t p)) (Not (@MatchgateWidth.AllLeftFlagAlternative S t p))))\n    (Or\n      (And (@MatchgateWidth.AllLeftMobileAlternative S t p)\n        (And (Not (@MatchgateWidth.AllLeftRayAlternative S t p)) (Not (@MatchgateWidth.AllLeftFlagAlternative S t p))))\n      (And (@MatchgateWidth.AllLeftFlagAlternative S t p)\n        (And (Not (@MatchgateWidth.AllLeftRayAlternative S t p))\n          (Not (@MatchgateWidth.AllLeftMobileAlternative S t p)))))","type":"Prop"},{"category":"flagships","display_name":"MatchgateWidth.Paper.claim_3_3_family","family":"matchgate-width","import":"Counting.MatchgateWidth.PaperStatements","kind":"specification-definition","module":"Counting.MatchgateWidth.PaperStatements","name":"MatchgateWidth.Paper.claim_3_3_family","original_declaration":"MatchgateWidth.Paper.claim_3_3_family","readable_type":"Prop","role":"specification-definition","source_line":83,"source_path":"projects/matchgate-width/Counting/MatchgateWidth/PaperStatements.lean","source_sha256":"de03b9d884e704b60061297742612c48ccbea38835172452774cbb4fca01f5f9","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/matchgate-width/Counting/MatchgateWidth/PaperStatements.lean#L83","specification":"∀\n  (C :\n    (k : Nat) →\n      MatchgateWidth.LabelledInstanceClass\n        (MatchgateWidth.starLanguageShape\n          (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))))\n  (_hC :\n    ∀ (k : Nat),\n      @MatchgateWidth.ContainsOrderedPlanar\n        (MatchgateWidth.starLanguageShape\n          (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n        (C k)),\n  And\n    (∀ (k : Nat) (_hk : @LE.le.{0} Nat instLENat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k),\n      And (MatchgateWidth.IntegerMainConclusions k _hk)\n        (@MatchgateWidth.AllLeftFlagAlternative\n          (MatchgateWidth.starLanguageShape\n            (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n              (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n          (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n            (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n              (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k)\n            (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n          (MatchgateWidth.integerRationalPresentation k _hk)))\n    (And\n      (MatchgateWidth.PaperOmega\n        (fun (k : Nat) => @Nat.cast.{0} Real Real.instNatCast (MatchgateWidth.integerSourceMinimum C k))\n        fun (k : Nat) =>\n        @HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n          (Real.rpow\n            (@OfNat.ofNat.{0} Real (nat_lit 2)\n              (@instOfNatAtLeastTwo.{0} Real (nat_lit 2) Real.instNatCast MatchgateWidth.Paper.claim_3_1._proof_2))\n            (@HDiv.hDiv.{0, 0, 0} Real Real Real\n              (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n              (@Nat.cast.{0} Real Real.instNatCast k)\n              (@OfNat.ofNat.{0} Real (nat_lit 2)\n                (@instOfNatAtLeastTwo.{0} Real (nat_lit 2) Real.instNatCast MatchgateWidth.Paper.claim_3_1._proof_2))))\n          (@Nat.cast.{0} Real Real.instNatCast k))\n      (∀ (B : Nat),\n        @LT.lt.{0} Nat instLTNat B\n          (MatchgateWidth.integerSourceMinimum C\n            (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n              (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)\n                (@OfNat.ofNat.{0} Nat (nat_lit 4) (instOfNatNat (nat_lit 4))) B)\n              (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8)))))))","type":"Prop"},{"category":"flagships","display_name":"MatchgateWidth.Paper.claim_4_2","family":"matchgate-width","import":"Counting.MatchgateWidth.PaperStatements","kind":"specification-definition","module":"Counting.MatchgateWidth.PaperStatements","name":"MatchgateWidth.Paper.claim_4_2","original_declaration":"MatchgateWidth.Paper.claim_4_2","readable_type":"Prop","role":"specification-definition","source_line":98,"source_path":"projects/matchgate-width/Counting/MatchgateWidth/PaperStatements.lean","source_sha256":"de03b9d884e704b60061297742612c48ccbea38835172452774cbb4fca01f5f9","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/matchgate-width/Counting/MatchgateWidth/PaperStatements.lean#L98","specification":"∀ {s : Nat} (K : @Subfield.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField))\n  (G :\n    MatchgateWidth.BooleanTable.{0} s\n      (@Subtype.{1} Complex fun (x : Complex) =>\n        @Membership.mem.{0, 0} Complex (@Subfield.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField))\n          (@SetLike.instMembership.{0, 0} (@Subfield.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField))\n            Complex (@Subfield.instSetLike.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)))\n          K x))\n  (_hG :\n    @MatchgateWidth.BooleanMatchgateIdentities.{0} s\n      (@Subtype.{1} Complex fun (x : Complex) =>\n        @Membership.mem.{0, 0} Complex (@Subfield.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField))\n          (@SetLike.instMembership.{0, 0} (@Subfield.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField))\n            Complex (@Subfield.instSetLike.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)))\n          K x)\n      (@Field.toCommRing.{0}\n        (@Subtype.{1} Complex fun (x : Complex) =>\n          @Membership.mem.{0, 0} Complex (@Subfield.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField))\n            (@SetLike.instMembership.{0, 0}\n              (@Subfield.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)) Complex\n              (@Subfield.instSetLike.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)))\n            K x)\n        (@Subfield.toField.{0} Complex Complex.instField K))\n      G),\n  @Exists.{1} Nat fun (v : Nat) =>\n    @Exists.{1} Nat fun (e : Nat) =>\n      @Exists.{1} (MatchgateWidth.WeightedGraph.{0, 0, 0} (Fin v) (Fin e) Complex)\n        fun (H : MatchgateWidth.WeightedGraph.{0, 0, 0} (Fin v) (Fin e) Complex) =>\n        @Exists.{1} (Fin s → Fin v) fun (ext : Fin s → Fin v) =>\n          And (Nonempty.{1} (@MatchgateWidth.PlanarDrawing.{0, 0} (Fin v) (Fin e) s H ext))\n            (And\n              (∀ (a : Fin e),\n                @Membership.mem.{0, 0} Complex\n                  (@Subfield.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField))\n                  (@SetLike.instMembership.{0, 0}\n                    (@Subfield.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)) Complex\n                    (@Subfield.instSetLike.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)))\n                  K (@MatchgateWidth.WeightedGraph.weight.{0, 0, 0} (Fin v) (Fin e) Complex H a))\n              (∀ (y : Fin s → Bool),\n                @Eq.{1} Complex\n                  (@MatchgateWidth.deletionSignature.{0, 0, 0} (Fin v) (Fin e) Complex (Fin.fintype v) (Fin.fintype e)\n                    Complex.instCommSemiring s H ext y)\n                  (@Subtype.val.{1} Complex\n                    (fun (x : Complex) =>\n                      @Membership.mem.{0, 0} Complex\n                        (@Subfield.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField))\n                        (@SetLike.instMembership.{0, 0}\n                          (@Subfield.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)) Complex\n                          (@Subfield.instSetLike.{0} Complex (@Field.toDivisionRing.{0} Complex Complex.instField)))\n                        K x)\n                    (G\n                      (@DFunLike.coe.{1, 1, 1} (Equiv.{1, 1} (Fin s → Bool) (MatchgateWidth.BooleanInput s))\n                        (Fin s → Bool) (fun (x : Fin s → Bool) => MatchgateWidth.BooleanInput s)\n                        (@EquivLike.toFunLike.{1, 1, 1} (Equiv.{1, 1} (Fin s → Bool) (MatchgateWidth.BooleanInput s))\n                          (Fin s → Bool) (MatchgateWidth.BooleanInput s)\n                          (@Equiv.instEquivLike.{1, 1} (Fin s → Bool) (MatchgateWidth.BooleanInput s)))\n                        (@Equiv.symm.{1, 1} (MatchgateWidth.BooleanInput s) (Fin s → Bool)\n                          (MatchgateWidth.booleanWordEquiv s))\n                        y)))))","type":"Prop"},{"category":"flagships","display_name":"MatchgateWidth.Paper.claim_9_1","family":"matchgate-width","import":"Counting.MatchgateWidth.PaperStatements","kind":"specification-definition","module":"Counting.MatchgateWidth.PaperStatements","name":"MatchgateWidth.Paper.claim_9_1","original_declaration":"MatchgateWidth.Paper.claim_9_1","readable_type":"Prop","role":"specification-definition","source_line":304,"source_path":"projects/matchgate-width/Counting/MatchgateWidth/PaperStatements.lean","source_sha256":"de03b9d884e704b60061297742612c48ccbea38835172452774cbb4fca01f5f9","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/matchgate-width/Counting/MatchgateWidth/PaperStatements.lean#L304","specification":"∀\n  (C :\n    (k : Nat) →\n      MatchgateWidth.LabelledInstanceClass\n        (MatchgateWidth.starLanguageShape\n          (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))))\n  (_hC :\n    ∀ (k : Nat),\n      @MatchgateWidth.ContainsOrderedPlanar\n        (MatchgateWidth.starLanguageShape\n          (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n            (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n        (C k)),\n  let W : (k r : Nat) → Prop := MatchgateWidth.transcendentalClassWidthCriterion C;\n  have hW :\n    ∀ (k : Nat) (hk : @LE.le.{0} Nat instLENat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k),\n      @Exists.{1} Nat fun (r : Nat) => MatchgateWidth.transcendentalClassWidthCriterion C k r :=\n    MatchgateWidth.transcendentalClassWidthCriterion_nonempty C;\n  And\n    (∀ (k : Nat),\n      @LE.le.{0} Nat instLENat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k →\n        And\n          (@LE.le.{0} Nat instLENat\n            (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n              (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k)\n            (MatchgateWidth.D k (MatchgateWidth.admissibleWidthSequence W hW k)))\n          (@LE.le.{0} Nat instLENat\n            (@Nat.ceil.{0} Real Real.semiring Real.partialOrder\n              (@FloorRing.toFloorSemiring.{0} Real Real.instRing Real.linearOrder Real.instFloorRing)\n              (Real.sqrt\n                (@HDiv.hDiv.{0, 0, 0} Real Real Real\n                  (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n                  (@HSub.hSub.{0, 0, 0} Real Real Real (@instHSub.{0} Real Real.instSub)\n                    (@HPow.hPow.{0, 0, 0} Real Nat Real\n                      (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid)))\n                      (@OfNat.ofNat.{0} Real (nat_lit 2)\n                        (@instOfNatAtLeastTwo.{0} Real (nat_lit 2) Real.instNatCast\n                          MatchgateWidth.Paper.claim_3_1._proof_2))\n                      k)\n                    (@OfNat.ofNat.{0} Real (nat_lit 3)\n                      (@instOfNatAtLeastTwo.{0} Real (nat_lit 3) Real.instNatCast\n                        MatchgateWidth.Paper.claim_3_1._proof_3)))\n                  (@HAdd.hAdd.{0, 0, 0} Real Real Real (@instHAdd.{0} Real Real.instAdd)\n                    (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))\n                    (@HDiv.hDiv.{0, 0, 0} Real Real Real\n                      (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n                      (@HPow.hPow.{0, 0, 0} Real Nat Real\n                        (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid)))\n                        (@Nat.cast.{0} Real Real.instNatCast k)\n                        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n                      (@OfNat.ofNat.{0} Real (nat_lit 2)\n                        (@instOfNatAtLeastTwo.{0} Real (nat_lit 2) Real.instNatCast\n                          MatchgateWidth.Paper.claim_3_1._proof_2)))))))\n            (MatchgateWidth.admissibleWidthSequence W hW k)))\n    (And\n      (MatchgateWidth.PaperOmega\n        (fun (k : Nat) => @Nat.cast.{0} Real Real.instNatCast (MatchgateWidth.admissibleWidthSequence W hW k))\n        fun (k : Nat) =>\n        @HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n          (Real.rpow\n            (@OfNat.ofNat.{0} Real (nat_lit 2)\n              (@instOfNatAtLeastTwo.{0} Real (nat_lit 2) Real.instNatCast MatchgateWidth.Paper.claim_3_1._proof_2))\n            (@HDiv.hDiv.{0, 0, 0} Real Real Real\n              (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n              (@Nat.cast.{0} Real Real.instNatCast k)\n              (@OfNat.ofNat.{0} Real (nat_lit 2)\n                (@instOfNatAtLeastTwo.{0} Real (nat_lit 2) Real.instNatCast MatchgateWidth.Paper.claim_3_1._proof_2))))\n          (@Nat.cast.{0} Real Real.instNatCast k))\n      (∀ (B : Nat),\n        @LT.lt.{0} Nat instLTNat B\n          (MatchgateWidth.admissibleWidthSequence W hW\n            (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n              (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)\n                (@OfNat.ofNat.{0} Nat (nat_lit 4) (instOfNatNat (nat_lit 4))) B)\n              (@OfNat.ofNat.{0} Nat (nat_lit 8) (instOfNatNat (nat_lit 8)))))))","type":"Prop"},{"category":"flagships","display_name":"Paper2.Problem.InFP","family":"holant-full","import":"Paper2.Problem","kind":"specification-definition","module":"Paper2.Problem","name":"Paper2.Problem.InFP","original_declaration":"Paper2.Problem.InFP","readable_type":"Paper2.Problem.Wiring → Paper2.ExactInput.Language → Prop","role":"specification-definition","source_line":79,"source_path":"projects/holant-unified/Paper2/Problem.lean","source_sha256":"d0fa9b2600dd595fb14bdc3f4c4d957532f364cbb33103ef4e280e989656f9f3","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Paper2/Problem.lean#L79","specification":"fun (w : Paper2.Problem.Wiring) (L : Paper2.ExactInput.Language) =>\n  @Exists.{1} (Paper2.Problem.Instance L → Paper2.ExactInput.RootCode)\n    fun (answer : Paper2.Problem.Instance L → Paper2.ExactInput.RootCode) =>\n    And (Paper2.Problem.CorrectAnswers w L answer)\n      (@Paper2.Complexity.InFP (Paper2.Problem.Instance L) Paper2.ExactInput.RootCode Bool Bool Bool.fintype\n        Bool.fintype (Paper2.Problem.inputEncoding L) Paper2.ExactInput.rootEncoding answer)","type":"(w : Paper2.Problem.Wiring) → (L : Paper2.ExactInput.Language) → Prop"},{"category":"flagships","display_name":"Paper2.Problem.SharpPHard","family":"holant-full","import":"Paper2.Problem","kind":"specification-definition","module":"Paper2.Problem","name":"Paper2.Problem.SharpPHard","original_declaration":"Paper2.Problem.SharpPHard","readable_type":"Paper2.Problem.Wiring → Paper2.ExactInput.Language → Prop","role":"specification-definition","source_line":94,"source_path":"projects/holant-unified/Paper2/Problem.lean","source_sha256":"d0fa9b2600dd595fb14bdc3f4c4d957532f364cbb33103ef4e280e989656f9f3","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Paper2/Problem.lean#L94","specification":"fun (w : Paper2.Problem.Wiring) (L : Paper2.ExactInput.Language) =>\n  And (Nonempty.{1} (Paper2.Problem.BoundedAnswers w L))\n    (∀ (answers : Paper2.Problem.BoundedAnswers w L) (f : List.{0} Bool → Nat),\n      @Paper2.Complexity.InSharpP (List.{0} Bool) Bool Bool.fintype (Computability.encodingList Bool) f →\n        Nonempty.{2}\n          (@Paper2.Complexity.LengthControlledOracleReduction (List.{0} Bool) Nat (Paper2.Problem.Instance L)\n            Paper2.ExactInput.RootCode (Computability.encodingList Bool) Computability.encodingNatBool\n            (Paper2.Problem.inputEncoding L) Paper2.ExactInput.rootEncoding f\n            (@Paper2.Problem.BoundedAnswers.answer w L answers)))","type":"(w : Paper2.Problem.Wiring) → (L : Paper2.ExactInput.Language) → Prop"},{"category":"flagships","display_name":"Paper2.PublicDichotomy.main_theorem_with_native_recognition","family":"holant-full","import":"Paper2.PublicNativeClassification","kind":"theorem","module":"Paper2.PublicNativeClassification","name":"Paper2.PublicDichotomy.main_theorem_with_native_recognition","original_declaration":"Paper2.PublicDichotomy.main_theorem_with_native_recognition","readable_type":"Exists fun ordinary =>\n  Exists fun native =>\n    And\n      (∀ (raw : Paper2.ExactInput.RawLanguage) (hraw : raw.Valid),\n        Exists fun b =>\n          Exists fun steps =>\n            And\n              (Eq (Nat.iterate (fun c => c.bind ordinary.machine.tm.step) steps (Option.some (ordinary.initial raw)))\n                (Option.some (ordinary.final b)))\n              (And (Eq (ordinary.machine.tm.step (ordinary.final b)) Option.none)\n                (Iff (Eq b Bool.true) (Paper2.Tractable.Tract (Paper2.ExactInput.Language.family ⟨raw, hraw⟩)))))\n      (And\n        (∀ (raw : Paper2.ExactInput.RawLanguage) (hraw : raw.Valid),\n          Exists fun b =>\n            Exists fun steps =>\n              And\n                (Eq (Nat.iterate (fun c => c.bind native.machine.tm.step) steps (Option.some (native.initial raw)))\n                  (Option.some (native.final b)))\n                (And (Eq (native.machine.tm.step (native.final b)) Option.none)\n                  (Iff (Eq b Bool.true) (Paper2.Tractable.Tract (Paper2.kImage ⟨raw, hraw⟩)))))\n        (∀ (L : Paper2.ExactInput.Language),\n          And (Iff (Eq (ordinary.decision L) Bool.true) (Paper2.Tractable.Tract L.family))\n            (And (Iff (Eq (native.decision L) Bool.true) (Paper2.Tractable.Tract (Paper2.kImage L)))\n              (And (Paper2.Tractable.Tract L.family → Paper2.Problem.InFP Paper2.Problem.Wiring.ordinary L)\n                (And\n                  (Not (Paper2.Tractable.Tract L.family) → Paper2.Problem.SharpPHard Paper2.Problem.Wiring.ordinary L)\n                  (And (Paper2.Tractable.Tract (Paper2.kImage L) → Paper2.Problem.InFP Paper2.Problem.Wiring.nativeX L)\n                    (Not (Paper2.Tractable.Tract (Paper2.kImage L)) →\n                      Paper2.Problem.SharpPHard Paper2.Problem.Wiring.nativeX L)))))))","role":"theorem","source_line":36,"source_path":"projects/holant-unified/Paper2/PublicNativeClassification.lean","source_sha256":"8d8583cc1a8e18edb5621ab3db726b28f4bb5597fc428fe11aa5e3427b243a73","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Paper2/PublicNativeClassification.lean#L36","type":"@Exists.{2} Paper2.Problem.TractRecognizer fun (ordinary : Paper2.Problem.TractRecognizer) =>\n  @Exists.{2} Paper2.Problem.NativeTractRecognizer fun (native : Paper2.Problem.NativeTractRecognizer) =>\n    And\n      (∀ (raw : Paper2.ExactInput.RawLanguage) (hraw : Paper2.ExactInput.RawLanguage.Valid raw),\n        @Exists.{1} Bool fun (b : Bool) =>\n          @Exists.{1} Nat fun (steps : Nat) =>\n            And\n              (@Eq.{1}\n                (Option.{0}\n                  (Turing.FinTM2.Cfg\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                        Paper2.ExactInput.Language.bits\n                        (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                        (Paper2.Problem.TractRecognizer.decision ordinary)\n                        (Paper2.Problem.TractRecognizer.machine ordinary)))))\n                (@Nat.iterate.{1}\n                  (Option.{0}\n                    (Turing.FinTM2.Cfg\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                          Paper2.ExactInput.Language.bits\n                          (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                          (Paper2.Problem.TractRecognizer.decision ordinary)\n                          (Paper2.Problem.TractRecognizer.machine ordinary)))))\n                  (fun\n                      (c :\n                        Option.{0}\n                          (Turing.FinTM2.Cfg\n                            (@Turing.TM2ComputableAux.tm Bool Bool\n                              (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                                Paper2.ExactInput.Language.bits\n                                (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                                (Paper2.Problem.TractRecognizer.decision ordinary)\n                                (Paper2.Problem.TractRecognizer.machine ordinary))))) =>\n                    @Option.bind.{0, 0}\n                      (Turing.FinTM2.Cfg\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                            Paper2.ExactInput.Language.bits\n                            (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                            (Paper2.Problem.TractRecognizer.decision ordinary)\n                            (Paper2.Problem.TractRecognizer.machine ordinary))))\n                      (Turing.FinTM2.Cfg\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                            Paper2.ExactInput.Language.bits\n                            (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                            (Paper2.Problem.TractRecognizer.decision ordinary)\n                            (Paper2.Problem.TractRecognizer.machine ordinary))))\n                      c\n                      (Turing.FinTM2.step\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                            Paper2.ExactInput.Language.bits\n                            (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                            (Paper2.Problem.TractRecognizer.decision ordinary)\n                            (Paper2.Problem.TractRecognizer.machine ordinary)))))\n                  steps\n                  (@Option.some.{0}\n                    (Turing.FinTM2.Cfg\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                          Paper2.ExactInput.Language.bits\n                          (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                          (Paper2.Problem.TractRecognizer.decision ordinary)\n                          (Paper2.Problem.TractRecognizer.machine ordinary))))\n                    (Paper2.Problem.TractRecognizer.initial ordinary raw)))\n                (@Option.some.{0}\n                  (Turing.FinTM2.Cfg\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                        Paper2.ExactInput.Language.bits\n                        (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                        (Paper2.Problem.TractRecognizer.decision ordinary)\n                        (Paper2.Problem.TractRecognizer.machine ordinary))))\n                  (Paper2.Problem.TractRecognizer.final ordinary b)))\n              (And\n                (@Eq.{1}\n                  (Option.{0}\n                    (Turing.FinTM2.Cfg\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                          Paper2.ExactInput.Language.bits\n                          (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                          (Paper2.Problem.TractRecognizer.decision ordinary)\n                          (Paper2.Problem.TractRecognizer.machine ordinary)))))\n                  (Turing.FinTM2.step\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                        Paper2.ExactInput.Language.bits\n                        (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                        (Paper2.Problem.TractRecognizer.decision ordinary)\n                        (Paper2.Problem.TractRecognizer.machine ordinary)))\n                    (Paper2.Problem.TractRecognizer.final ordinary b))\n                  (@Option.none.{0}\n                    (Turing.FinTM2.Cfg\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                          Paper2.ExactInput.Language.bits\n                          (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                          (Paper2.Problem.TractRecognizer.decision ordinary)\n                          (Paper2.Problem.TractRecognizer.machine ordinary))))))\n                (Iff (@Eq.{1} Bool b Bool.true)\n                  (Paper2.Tractable.Tract\n                    (Paper2.ExactInput.Language.family\n                      (@Subtype.mk.{1} Paper2.ExactInput.RawLanguage\n                        (fun (L : Paper2.ExactInput.RawLanguage) => Paper2.ExactInput.RawLanguage.Valid L) raw\n                        hraw))))))\n      (And\n        (∀ (raw : Paper2.ExactInput.RawLanguage) (hraw : Paper2.ExactInput.RawLanguage.Valid raw),\n          @Exists.{1} Bool fun (b : Bool) =>\n            @Exists.{1} Nat fun (steps : Nat) =>\n              And\n                (@Eq.{1}\n                  (Option.{0}\n                    (Turing.FinTM2.Cfg\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                          Paper2.ExactInput.Language.bits\n                          (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                          (Paper2.Problem.NativeTractRecognizer.decision native)\n                          (Paper2.Problem.NativeTractRecognizer.machine native)))))\n                  (@Nat.iterate.{1}\n                    (Option.{0}\n                      (Turing.FinTM2.Cfg\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                            Paper2.ExactInput.Language.bits\n                            (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                            (Paper2.Problem.NativeTractRecognizer.decision native)\n                            (Paper2.Problem.NativeTractRecognizer.machine native)))))\n                    (fun\n                        (c :\n                          Option.{0}\n                            (Turing.FinTM2.Cfg\n                              (@Turing.TM2ComputableAux.tm Bool Bool\n                                (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                                  Paper2.ExactInput.Language.bits\n                                  (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                                  (Paper2.Problem.NativeTractRecognizer.decision native)\n                                  (Paper2.Problem.NativeTractRecognizer.machine native))))) =>\n                      @Option.bind.{0, 0}\n                        (Turing.FinTM2.Cfg\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                              Paper2.ExactInput.Language.bits\n                              (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                              (Paper2.Problem.NativeTractRecognizer.decision native)\n                              (Paper2.Problem.NativeTractRecognizer.machine native))))\n                        (Turing.FinTM2.Cfg\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                              Paper2.ExactInput.Language.bits\n                              (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                              (Paper2.Problem.NativeTractRecognizer.decision native)\n                              (Paper2.Problem.NativeTractRecognizer.machine native))))\n                        c\n                        (Turing.FinTM2.step\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                              Paper2.ExactInput.Language.bits\n                              (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                              (Paper2.Problem.NativeTractRecognizer.decision native)\n                              (Paper2.Problem.NativeTractRecognizer.machine native)))))\n                    steps\n                    (@Option.some.{0}\n                      (Turing.FinTM2.Cfg\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                            Paper2.ExactInput.Language.bits\n                            (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                            (Paper2.Problem.NativeTractRecognizer.decision native)\n                            (Paper2.Problem.NativeTractRecognizer.machine native))))\n                      (Paper2.Problem.NativeTractRecognizer.initial native raw)))\n                  (@Option.some.{0}\n                    (Turing.FinTM2.Cfg\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                          Paper2.ExactInput.Language.bits\n                          (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                          (Paper2.Problem.NativeTractRecognizer.decision native)\n                          (Paper2.Problem.NativeTractRecognizer.machine native))))\n                    (Paper2.Problem.NativeTractRecognizer.final native b)))\n                (And\n                  (@Eq.{1}\n                    (Option.{0}\n                      (Turing.FinTM2.Cfg\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                            Paper2.ExactInput.Language.bits\n                            (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                            (Paper2.Problem.NativeTractRecognizer.decision native)\n                            (Paper2.Problem.NativeTractRecognizer.machine native)))))\n                    (Turing.FinTM2.step\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                          Paper2.ExactInput.Language.bits\n                          (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                          (Paper2.Problem.NativeTractRecognizer.decision native)\n                          (Paper2.Problem.NativeTractRecognizer.machine native)))\n                      (Paper2.Problem.NativeTractRecognizer.final native b))\n                    (@Option.none.{0}\n                      (Turing.FinTM2.Cfg\n                        (@Turing.TM2ComputableAux.tm Bool Bool\n                          (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                            Paper2.ExactInput.Language.bits\n                            (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                            (Paper2.Problem.NativeTractRecognizer.decision native)\n                            (Paper2.Problem.NativeTractRecognizer.machine native))))))\n                  (Iff (@Eq.{1} Bool b Bool.true)\n                    (Paper2.Tractable.Tract\n                      (Paper2.kImage\n                        (@Subtype.mk.{1} Paper2.ExactInput.RawLanguage\n                          (fun (L : Paper2.ExactInput.RawLanguage) => Paper2.ExactInput.RawLanguage.Valid L) raw\n                          hraw))))))\n        (∀ (L : Paper2.ExactInput.Language),\n          And\n            (Iff (@Eq.{1} Bool (Paper2.Problem.TractRecognizer.decision ordinary L) Bool.true)\n              (Paper2.Tractable.Tract (Paper2.ExactInput.Language.family L)))\n            (And\n              (Iff (@Eq.{1} Bool (Paper2.Problem.NativeTractRecognizer.decision native L) Bool.true)\n                (Paper2.Tractable.Tract (Paper2.kImage L)))\n              (And\n                (Paper2.Tractable.Tract (Paper2.ExactInput.Language.family L) →\n                  Paper2.Problem.InFP Paper2.Problem.Wiring.ordinary L)\n                (And\n                  (Not (Paper2.Tractable.Tract (Paper2.ExactInput.Language.family L)) →\n                    Paper2.Problem.SharpPHard Paper2.Problem.Wiring.ordinary L)\n                  (And (Paper2.Tractable.Tract (Paper2.kImage L) → Paper2.Problem.InFP Paper2.Problem.Wiring.nativeX L)\n                    (Not (Paper2.Tractable.Tract (Paper2.kImage L)) →\n                      Paper2.Problem.SharpPHard Paper2.Problem.Wiring.nativeX L)))))))"},{"category":"flagships","display_name":"Paper2.PublicDichotomy.theorem_9_2","family":"holant-full","import":"Paper2.PublicNativeClassification","kind":"theorem","module":"Paper2.PublicNativeClassification","name":"Paper2.PublicDichotomy.theorem_9_2","original_declaration":"Paper2.PublicDichotomy.theorem_9_2","readable_type":"Exists fun r =>\n  And\n    (∀ (raw : Paper2.ExactInput.RawLanguage) (hraw : raw.Valid),\n      Exists fun b =>\n        Exists fun steps =>\n          And\n            (Eq (Nat.iterate (fun c => c.bind r.machine.tm.step) steps (Option.some (r.initial raw)))\n              (Option.some (r.final b)))\n            (And (Eq (r.machine.tm.step (r.final b)) Option.none)\n              (Iff (Eq b Bool.true) (Paper2.Tractable.Tract (Paper2.kImage ⟨raw, hraw⟩)))))\n    (∀ (L : Paper2.ExactInput.Language),\n      And (Iff (Eq (r.decision L) Bool.true) (Paper2.Tractable.Tract (Paper2.kImage L)))\n        (And (Paper2.Tractable.Tract (Paper2.kImage L) → Paper2.Problem.InFP Paper2.Problem.Wiring.nativeX L)\n          (Not (Paper2.Tractable.Tract (Paper2.kImage L)) → Paper2.Problem.SharpPHard Paper2.Problem.Wiring.nativeX L)))","role":"theorem","source_line":15,"source_path":"projects/holant-unified/Paper2/PublicNativeClassification.lean","source_sha256":"8d8583cc1a8e18edb5621ab3db726b28f4bb5597fc428fe11aa5e3427b243a73","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/holant-unified/Paper2/PublicNativeClassification.lean#L15","type":"@Exists.{2} Paper2.Problem.NativeTractRecognizer fun (r : Paper2.Problem.NativeTractRecognizer) =>\n  And\n    (∀ (raw : Paper2.ExactInput.RawLanguage) (hraw : Paper2.ExactInput.RawLanguage.Valid raw),\n      @Exists.{1} Bool fun (b : Bool) =>\n        @Exists.{1} Nat fun (steps : Nat) =>\n          And\n            (@Eq.{1}\n              (Option.{0}\n                (Turing.FinTM2.Cfg\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                      Paper2.ExactInput.Language.bits\n                      (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                      (Paper2.Problem.NativeTractRecognizer.decision r)\n                      (Paper2.Problem.NativeTractRecognizer.machine r)))))\n              (@Nat.iterate.{1}\n                (Option.{0}\n                  (Turing.FinTM2.Cfg\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                        Paper2.ExactInput.Language.bits\n                        (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                        (Paper2.Problem.NativeTractRecognizer.decision r)\n                        (Paper2.Problem.NativeTractRecognizer.machine r)))))\n                (fun\n                    (c :\n                      Option.{0}\n                        (Turing.FinTM2.Cfg\n                          (@Turing.TM2ComputableAux.tm Bool Bool\n                            (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                              Paper2.ExactInput.Language.bits\n                              (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                              (Paper2.Problem.NativeTractRecognizer.decision r)\n                              (Paper2.Problem.NativeTractRecognizer.machine r))))) =>\n                  @Option.bind.{0, 0}\n                    (Turing.FinTM2.Cfg\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                          Paper2.ExactInput.Language.bits\n                          (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                          (Paper2.Problem.NativeTractRecognizer.decision r)\n                          (Paper2.Problem.NativeTractRecognizer.machine r))))\n                    (Turing.FinTM2.Cfg\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                          Paper2.ExactInput.Language.bits\n                          (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                          (Paper2.Problem.NativeTractRecognizer.decision r)\n                          (Paper2.Problem.NativeTractRecognizer.machine r))))\n                    c\n                    (Turing.FinTM2.step\n                      (@Turing.TM2ComputableAux.tm Bool Bool\n                        (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                          Paper2.ExactInput.Language.bits\n                          (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                          (Paper2.Problem.NativeTractRecognizer.decision r)\n                          (Paper2.Problem.NativeTractRecognizer.machine r)))))\n                steps\n                (@Option.some.{0}\n                  (Turing.FinTM2.Cfg\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                        Paper2.ExactInput.Language.bits\n                        (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                        (Paper2.Problem.NativeTractRecognizer.decision r)\n                        (Paper2.Problem.NativeTractRecognizer.machine r))))\n                  (Paper2.Problem.NativeTractRecognizer.initial r raw)))\n              (@Option.some.{0}\n                (Turing.FinTM2.Cfg\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                      Paper2.ExactInput.Language.bits\n                      (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                      (Paper2.Problem.NativeTractRecognizer.decision r)\n                      (Paper2.Problem.NativeTractRecognizer.machine r))))\n                (Paper2.Problem.NativeTractRecognizer.final r b)))\n            (And\n              (@Eq.{1}\n                (Option.{0}\n                  (Turing.FinTM2.Cfg\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                        Paper2.ExactInput.Language.bits\n                        (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                        (Paper2.Problem.NativeTractRecognizer.decision r)\n                        (Paper2.Problem.NativeTractRecognizer.machine r)))))\n                (Turing.FinTM2.step\n                  (@Turing.TM2ComputableAux.tm Bool Bool\n                    (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                      Paper2.ExactInput.Language.bits\n                      (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                      (Paper2.Problem.NativeTractRecognizer.decision r)\n                      (Paper2.Problem.NativeTractRecognizer.machine r)))\n                  (Paper2.Problem.NativeTractRecognizer.final r b))\n                (@Option.none.{0}\n                  (Turing.FinTM2.Cfg\n                    (@Turing.TM2ComputableAux.tm Bool Bool\n                      (@Turing.TM2Computable.toTM2ComputableAux Paper2.ExactInput.Language Bool Bool Bool\n                        Paper2.ExactInput.Language.bits\n                        (@Computability.Encoding.encode.{0, 0} Bool Bool Computability.encodingBoolBool)\n                        (Paper2.Problem.NativeTractRecognizer.decision r)\n                        (Paper2.Problem.NativeTractRecognizer.machine r))))))\n              (Iff (@Eq.{1} Bool b Bool.true)\n                (Paper2.Tractable.Tract\n                  (Paper2.kImage\n                    (@Subtype.mk.{1} Paper2.ExactInput.RawLanguage\n                      (fun (L : Paper2.ExactInput.RawLanguage) => Paper2.ExactInput.RawLanguage.Valid L) raw hraw))))))\n    (∀ (L : Paper2.ExactInput.Language),\n      And\n        (Iff (@Eq.{1} Bool (Paper2.Problem.NativeTractRecognizer.decision r L) Bool.true)\n          (Paper2.Tractable.Tract (Paper2.kImage L)))\n        (And (Paper2.Tractable.Tract (Paper2.kImage L) → Paper2.Problem.InFP Paper2.Problem.Wiring.nativeX L)\n          (Not (Paper2.Tractable.Tract (Paper2.kImage L)) → Paper2.Problem.SharpPHard Paper2.Problem.Wiring.nativeX L)))"},{"category":"flagships","display_name":"PlanarHom.MainDichotomyScope.Theorem11Statement","family":"planar-homomorphisms","import":"PlanarHom.MainDichotomyScope","kind":"specification-definition","module":"PlanarHom.MainDichotomyScope","name":"PlanarHom.MainDichotomyScope.Theorem11Statement","original_declaration":"PlanarHom.MainDichotomyScope.Theorem11Statement","readable_type":"Prop","role":"specification-definition","source_line":11,"source_path":"projects/planar-classification/PlanarHom/MainDichotomyScope.lean","source_sha256":"0edd2a81d0b585d10bb07af6d5a4326f1ac41ab9a64af84942b529f1f4b53a46","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/planar-classification/PlanarHom/MainDichotomyScope.lean#L11","specification":"∀ {q : Nat}\n  (L :\n    PlanarHom.AlgebraicProductInterpolation.RealLanguage q (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))),\n  (∀ (i : Fin q),\n      @Eq.{1} Real\n        (@PlanarHom.AlgebraicProductInterpolation.RealLanguage.weights q\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) L i)\n        (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))) →\n    (∀ (i j : Fin q),\n        @Eq.{1} Real\n          (@PlanarHom.AlgebraicProductInterpolation.RealLanguage.matrices q\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) L\n            (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) (nat_lit 0)\n              (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                PlanarHom.MainDichotomyScope.Theorem11Statement._proof_1 (nat_lit 0)))\n            i j)\n          (@PlanarHom.AlgebraicProductInterpolation.RealLanguage.matrices q\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) L\n            (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) (nat_lit 0)\n              (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                PlanarHom.MainDichotomyScope.Theorem11Statement._proof_1 (nat_lit 0)))\n            j i)) →\n      (∀ (i j : Fin q),\n          @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero))\n            (@PlanarHom.AlgebraicProductInterpolation.RealLanguage.matrices q\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) L\n              (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) (nat_lit 0)\n                (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  PlanarHom.MainDichotomyScope.Theorem11Statement._proof_1 (nat_lit 0)))\n              i j)) →\n        And\n          (@PlanarHom.Structures.NonnegativeClass.{0} (Fin q)\n              (@PlanarHom.AlgebraicProductInterpolation.RealLanguage.matrices q\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) L\n                (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) (nat_lit 0)\n                  (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    PlanarHom.MainDichotomyScope.Theorem11Statement._proof_1 (nat_lit 0)))) →\n            PlanarHom.Complexity.PromiseProblem.InFP\n              (@PlanarHom.AlgebraicProductInterpolation.RealLanguage.problem q\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) L))\n          (Not\n              (@PlanarHom.Structures.NonnegativeClass.{0} (Fin q)\n                (@PlanarHom.AlgebraicProductInterpolation.RealLanguage.matrices q\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) L\n                  (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) (nat_lit 0)\n                    (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                      PlanarHom.MainDichotomyScope.Theorem11Statement._proof_1 (nat_lit 0))))) →\n            PlanarHom.Complexity.PromisedSharpPHard\n              (@PlanarHom.AlgebraicProductInterpolation.RealLanguage.problem q\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) L))","type":"Prop"},{"category":"flagships","display_name":"PlanarHom.MainDichotomyScope.Theorem13Statement","family":"planar-homomorphisms","import":"PlanarHom.MainDichotomyScope","kind":"specification-definition","module":"PlanarHom.MainDichotomyScope","name":"PlanarHom.MainDichotomyScope.Theorem13Statement","original_declaration":"PlanarHom.MainDichotomyScope.Theorem13Statement","readable_type":"Prop","role":"specification-definition","source_line":19,"source_path":"projects/planar-classification/PlanarHom/MainDichotomyScope.lean","source_sha256":"0edd2a81d0b585d10bb07af6d5a4326f1ac41ab9a64af84942b529f1f4b53a46","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/planar-classification/PlanarHom/MainDichotomyScope.lean#L19","specification":"∀ {q : Nat}\n  (L :\n    PlanarHom.AlgebraicProductInterpolation.RealLanguage q (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n  (hs :\n    ∀ (i j : Fin q),\n      @Eq.{1} Real\n        (@PlanarHom.AlgebraicProductInterpolation.RealLanguage.matrices q\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) L\n          (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) (nat_lit 0)\n            (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              PlanarHom.MainDichotomyScope.Theorem11Statement._proof_1 (nat_lit 0)))\n          i j)\n        (@PlanarHom.AlgebraicProductInterpolation.RealLanguage.matrices q\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) L\n          (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) (nat_lit 0)\n            (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              PlanarHom.MainDichotomyScope.Theorem11Statement._proof_1 (nat_lit 0)))\n          j i)),\n  (∀ (i j : Fin q),\n      @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero))\n        (@PlanarHom.AlgebraicProductInterpolation.RealLanguage.matrices q\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n          (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) L\n          (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) (nat_lit 0)\n            (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              PlanarHom.MainDichotomyScope.Theorem11Statement._proof_1 (nat_lit 0)))\n          i j)) →\n    (∀ (i : Fin q),\n        @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero))\n          (@PlanarHom.AlgebraicProductInterpolation.RealLanguage.weights q\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n            (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) L i)) →\n      And\n        (@PlanarHom.Structures.PositiveVertexWeightClass.{0} (Fin q) (Fin.fintype q)\n            (@PlanarHom.AlgebraicProductInterpolation.RealLanguage.matrices q\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) L\n              (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) (nat_lit 0)\n                (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                  PlanarHom.MainDichotomyScope.Theorem11Statement._proof_1 (nat_lit 0))))\n            (@PlanarHom.AlgebraicProductInterpolation.RealLanguage.weights q\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) L)\n            hs →\n          PlanarHom.Complexity.PromiseProblem.InFP\n            (@PlanarHom.AlgebraicProductInterpolation.RealLanguage.problem q\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) L))\n        (Not\n            (@PlanarHom.Structures.PositiveVertexWeightClass.{0} (Fin q) (Fin.fintype q)\n              (@PlanarHom.AlgebraicProductInterpolation.RealLanguage.matrices q\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) L\n                (@OfNat.ofNat.{0} (Fin (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) (nat_lit 0)\n                  (@Fin.instOfNat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                    PlanarHom.MainDichotomyScope.Theorem11Statement._proof_1 (nat_lit 0))))\n              (@PlanarHom.AlgebraicProductInterpolation.RealLanguage.weights q\n                (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n                (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) L)\n              hs) →\n          PlanarHom.Complexity.PromisedSharpPHard\n            (@PlanarHom.AlgebraicProductInterpolation.RealLanguage.problem q\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n              (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) L))","type":"Prop"},{"category":"flagships","display_name":"PlanarHom.MainDichotomyScope.theorem11","family":"planar-homomorphisms","import":"PlanarHom.MainDichotomiesClosed","kind":"theorem","module":"PlanarHom.MainDichotomiesClosed","name":"PlanarHom.MainDichotomyScope.theorem11","original_declaration":"PlanarHom.MainDichotomyScope.theorem11","readable_type":"PlanarHom.MainDichotomyScope.Theorem11Statement","role":"theorem","source_line":13,"source_path":"projects/planar-classification/PlanarHom/MainDichotomiesClosed.lean","source_sha256":"9aba7cdaf899acc74dfabafb0b68200ad480995efa44c270301c15453527b4c9","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/planar-classification/PlanarHom/MainDichotomiesClosed.lean#L13","type":"PlanarHom.MainDichotomyScope.Theorem11Statement"},{"category":"flagships","display_name":"PlanarHom.MainDichotomyScope.theorem13","family":"planar-homomorphisms","import":"PlanarHom.MainDichotomiesClosed","kind":"theorem","module":"PlanarHom.MainDichotomiesClosed","name":"PlanarHom.MainDichotomyScope.theorem13","original_declaration":"PlanarHom.MainDichotomyScope.theorem13","readable_type":"PlanarHom.MainDichotomyScope.Theorem13Statement","role":"theorem","source_line":15,"source_path":"projects/planar-classification/PlanarHom/MainDichotomiesClosed.lean","source_sha256":"9aba7cdaf899acc74dfabafb0b68200ad480995efa44c270301c15453527b4c9","source_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/projects/planar-classification/PlanarHom/MainDichotomiesClosed.lean#L15","type":"PlanarHom.MainDichotomyScope.Theorem13Statement"}],"families":[{"category":"core","fields":[{"label":"Runtime inputs","text":"Boolean affine support, quadratic phase, scale and initial stack."},{"label":"Outputs","text":"Semantic affine evaluation, compiled scalar bytecode and actual stack execution agree with the affine partition."},{"label":"Cost","text":"Compiler transition and emitted-code-size bounds are separate from algebraic coefficient interpretation."},{"label":"Limits","text":"S1 assembly and algebraic interpretation are noncomputable. The fixed-language bit machine has its own explicit input/output representation."}],"id":"core-affine","title":"Affine partition and bytecode executor"},{"category":"core","fields":[{"label":"Runtime inputs","text":"Ordered factors, boundary assignment and a supplied complete variable order."},{"label":"Input promises","text":"Finite domains and explicit completeness of the elimination order."},{"label":"Outputs","text":"Actual bucket-elimination result equals the original open partition."},{"label":"Cost","text":"This bridge proves execution correctness; cached work and width bounds are separate refinements."},{"label":"Limits","text":"The semantic equality is not a polynomial encoded-machine cost bound."}],"id":"core-variable-elimination","title":"Bucket elimination and open-partition bridge"},{"category":"core","fields":[{"label":"Runtime inputs","text":"CNF formula, compiled POG, root literal and optional complementary ring weights."},{"label":"Input promises","text":"Partitionedness, declared-variable coverage and original PropFun formula equivalence."},{"label":"Outputs","text":"Original array counter/ring evaluator equals the corresponding S1 partition."},{"label":"Cost","text":"Correctness bridge to the existing evaluator; no new parser/checker or machine complexity is asserted."},{"label":"Limits","text":"A certificate checker may supply the equivalence hypothesis; this component does not implement such a checker."}],"id":"core-cpog","title":"Compiled POG counting and weighted partitions"},{"category":"core","fields":[{"label":"Fixed parameters","text":"Standard binary witness counting and the target instance codec."},{"label":"Runtime inputs","text":"SharpP witness verifiers and source instances."},{"label":"Outputs","text":"Target SharpP membership and implemented count-preserving reductions to independent NOR counting."},{"label":"Cost","text":"The compiler and verifier are actual finite polynomial-time machines over their declared encodings."},{"label":"Limits","text":"The count-preserving padding is uniquely determined; unrestricted unused witness bits are not introduced."}],"id":"core-cook-levin","title":"Counting Cook-Levin to independent NOR instances"},{"category":"core","fields":[{"label":"Runtime inputs","text":"Binary lists and lists of framed binary values."},{"label":"Outputs","text":"Injective framing, exact encoded-length identities, and decoding round trips."},{"label":"Cost","text":"Encoding identities and lengths; a codec round trip alone does not prove a polynomial-time converter."},{"label":"Limits","text":"Concrete execution bounds require the separate machine layer."}],"id":"core-encoding","title":"Faithful framed binary encodings"},{"category":"core","fields":[{"label":"Fixed parameters","text":"Finite witness types and Boolean acceptance predicates."},{"label":"Runtime inputs","text":"Accepted elements, exact Boolean witness length, and acceptance predicate."},{"label":"Input promises","text":"Fintype witnesses; any bijections or unique-padding hypotheses appear in the full theorem type."},{"label":"Outputs","text":"Natural-valued finite indicator sums, product identities, and exact unique-false-padding invariance."},{"label":"Cost","text":"Finite cardinality semantics; no verifier runtime is supplied by these identities."},{"label":"Limits","text":"Ignored independent bits multiply counts and do not provide a parsimonious extension."}],"id":"core-foundation-witness","title":"Finite accepted and Boolean-witness counts"},{"category":"core","fields":[{"label":"Fixed parameters","text":"Explicit input/output encodings over finite alphabets."},{"label":"Runtime inputs","text":"Functions and concrete finite TM2 computers, with polynomial transition bounds."},{"label":"Outputs","text":"FP membership, composed actual machines, exact transition composition and encoded-output bounds."},{"label":"Cost","text":"Transition counts on the complete encoded input; the second computation is charged at the derived first-output length."},{"label":"Limits","text":"These contracts concern the stated encodings and machine model."}],"id":"core-polytime","title":"Finite-machine polynomial time and composition"},{"category":"core","fields":[{"label":"Fixed parameters","text":"Represented number field and a rational basis."},{"label":"Runtime inputs","text":"Encoded grids/matrices of variable order with the declared representation validity."},{"label":"Input promises","text":"The machine evaluates encoded grids; the independent pairing-Pfaffian correctness theorem assumes a square skew-symmetric matrix with zero diagonal, including empty and odd orders."},{"label":"Outputs","text":"Certified Pfaffian value, finite-stack polynomial computer, exact execution identity and FP membership."},{"label":"Cost","text":"Polynomial runtime on the actual encoded matrix under the fixed field/basis representation."},{"label":"Limits","text":"This is Pfaffian evaluation; planar counting applications require separate orientation, normalization and graph promises."}],"id":"core-pfaffian","title":"Finite-stack Pfaffian evaluation"},{"category":"core","fields":[{"label":"Fixed parameters","text":"A finite Boolean affine family, arity layout and original coefficient-field presentation."},{"label":"Runtime inputs","text":"Validated original raw-network encodings."},{"label":"Outputs","text":"The source finite polynomial-time solver and FP membership with its original output codec."},{"label":"Cost","text":"Actual finite-machine polynomial runtime for the fixed family; the source also states a same-run Primitive-cost bound."},{"label":"Limits","text":"No uniform polynomial evaluator is claimed when the signature language varies as input."}],"id":"core-affine-machine","title":"Fixed-language affine bit machine"},{"category":"core","fields":[{"label":"Runtime inputs","text":"Open instances, compatible interfaces and realizing gadgets."},{"label":"Input promises","text":"Resource/realization and finite-type assumptions are explicit in each full type."},{"label":"Outputs","text":"Exact partition equalities for gluing, disjoint union and substitution."},{"label":"Cost","text":"Semantic identities; representation and machine costs are separate."},{"label":"Limits","text":"An instance equality does not grant unlisted resources to a fixed language."}],"id":"core-gadget-composition","title":"Gluing and substitution of weighted gadgets"},{"category":"core","fields":[{"label":"Fixed parameters","text":"Finite domain, commutative coefficient semiring and compatible transformation kernels."},{"label":"Runtime inputs","text":"Explicit coordinate actions and paired-stub open or closed networks."},{"label":"Input promises","text":"Cancellation/inverse directions and edge compatibility are hypotheses in each full type."},{"label":"Outputs","text":"Coordinate-action cancellation, closed partition invariance and open boundary covariance."},{"label":"Cost","text":"Finite-domain algebraic identities; optional fixed-table machines carry their own narrower execution contracts."},{"label":"Limits","text":"Open boundary covariance retains its transformation directions; invariance cannot be substituted indiscriminately."}],"id":"core-holographic","title":"Holographic invariance and boundary covariance"},{"category":"core","fields":[{"label":"Fixed parameters","text":"Explicit source/target instance and natural-answer encodings."},{"label":"Runtime inputs","text":"Actual polynomial-time instance maps with pointwise equality of counts."},{"label":"Outputs","text":"Composition, encoded-output bounds, downward FP transport and forward class-relative hardness transport."},{"label":"Cost","text":"Composition retains concrete machine transition bounds and charges intermediate output lengths."},{"label":"Limits","text":"Hardness transport is conditional and does not separate complexity classes. SharpP membership transport has its own verifier construction."}],"id":"core-reductions","title":"Implemented parsimonious reductions"},{"category":"core","fields":[{"label":"Fixed parameters","text":"Coefficient field."},{"label":"Runtime inputs","text":"A degree bound m, exactly m+1 nodes, and their sample values."},{"label":"Input promises","text":"Node distinctness and degree/sample restrictions appear in the specification theorem."},{"label":"Outputs","text":"The executed value recovers coefficient m of a polynomial of degree at most m, with exact query and field-operation counts."},{"label":"Cost","text":"The actual program uses m+1 sample queries and 2(m+1)^2 field operations. Constants, list construction and checked-frontend equality comparisons are outside this arithmetic model."},{"label":"Limits","text":"Encoded bit runtime belongs to the separate fixed-field interpolation-machine layer."}],"id":"core-interpolation","title":"Measured Lagrange interpolation"},{"category":"core","fields":[{"label":"Fixed parameters","text":"Instance encoding and finite alphabet."},{"label":"Runtime inputs","text":"Natural-valued functions, polynomial witness lengths, and actual finite-machine verifiers."},{"label":"Input promises","text":"Each Boolean witness has exactly the polynomial length in the instance's encoded length."},{"label":"Outputs","text":"SharpPWitness, InSharpP, witness-count growth bounds and constant examples."},{"label":"Cost","text":"Verifier runtime is polynomial in the encoded instance/witness pair."},{"label":"Limits","text":"The verifier accepts witnesses; it does not itself produce the count. Complex-weighted evaluation is a separate output contract."}],"id":"core-sharpp","title":"Natural-valued polynomial witness counting"},{"category":"core","fields":[{"label":"Fixed parameters","text":"Signature language, domain, coefficient semiring and boundary/hidden types."},{"label":"Runtime inputs","text":"Ordered occurrence lists and ordered scopes, with a boundary assignment."},{"label":"Outputs","text":"Language, occurrence and open-instance types and finite hidden-assignment partition sums."},{"label":"Resources","text":"Repeated occurrences and ports, nullary/zero signatures, and isolated variables remain explicit."},{"label":"Cost","text":"Mathematical partition semantics; no machine or bit-runtime contract."}],"id":"core-models","title":"Ordered weighted constraints and open partitions"},{"category":"core","fields":[{"label":"Runtime inputs","text":"Stored finite-domain tables and a supplied complete elimination order."},{"label":"Outputs","text":"Once-only input preparation, cached evaluator and exact partition value."},{"label":"Cost","text":"Returned observations retain declared layout, addressing, table-read, preparation and coefficient-work channels."},{"label":"Limits","text":"Physical allocation, internal scope/assignment operations, coefficient bit costs and canonical-order construction are separate obligations."}],"id":"core-cached-elimination","title":"Prepared dense-table elimination"},{"category":"core","fields":[{"label":"Fixed parameters","text":"Commutative coefficient semiring and the Boolean factor vocabulary."},{"label":"Runtime inputs","text":"Explicit variable count and ordered scalar, unary, equality and disequality occurrences."},{"label":"Outputs","text":"The executed evaluator and annotated run equal the public S1 partition."},{"label":"Cost","text":"Coefficient additions/multiplications and scan/rewrite factor visits have explicit bounds."},{"label":"Limits","text":"Arithmetic counts exclude coefficient bit lengths, input compilation and finite-address operations. A separate fixed-palette machine frontend supplies a narrower bit-runtime contract."}],"id":"core-product","title":"Product-factor elimination"},{"category":"core","fields":[{"label":"Runtime inputs","text":"Stored factors and a supplied tree decomposition of their actual primal graph."},{"label":"Outputs","text":"Constructed-order elimination, partition correctness and coefficient-addition bounds depending on width."},{"label":"Cost","text":"Accumulated declared logical work is bounded using the supplied decomposition and retained occurrence/port counts."},{"label":"Limits","text":"Decomposition search/conversion costs, physical storage and coefficient bit costs are not included."}],"id":"core-elimination-width","title":"Tree-decomposition-driven elimination"},{"category":"core","fields":[{"label":"Fixed parameters","text":"Original finite uniform Boolean-tape model and deterministic Boolean-stack program."},{"label":"Runtime inputs","text":"DNF formula, rational accuracy/confidence parameters and a tape of the requested budget."},{"label":"Input promises","text":"Program.ValidRequest supplies the legal accuracy/confidence restrictions."},{"label":"Outputs","text":"Actual clean rational-output halts, exact zero behavior, finite fair-tape relative-error probability and parameterized bounds."},{"label":"Cost","text":"The actual whole-input transition and Primitive bounds charge encoded parameters and the requested random-bit budget."},{"label":"Limits","text":"Probability is over the original finite uniform tape; it is not an unstated probabilistic-transition model."}],"id":"core-karp-luby","title":"Whole-request Karp-Luby DNF approximation"},{"category":"core","fields":[{"label":"Fixed parameters","text":"Standard binary instance encoding."},{"label":"Runtime inputs","text":"Natural-valued functions on Boolean lists."},{"label":"Outputs","text":"Equivalence of witness-verifier membership and accepting-path membership."},{"label":"Cost","text":"Actual verifier/machine translations are provided by the imported bridge."},{"label":"Limits","text":"The public equivalence uses binary inputs and retains the source machine conventions."}],"id":"core-witness-bridge","title":"Witness and accepting-path SharpP presentations"},{"category":"flagships","fields":[{"label":"Fixed parameters","text":"Finite indexed AlgebraicComplex signature family G with arity layout; evaluator, rational-coordinate output field and polynomial fixed per family. Uniform recognizer machines precede all sizes, arities, tables and representing exact inputs."},{"label":"Runtime inputs","text":"Evaluation: RawClosedNetwork.validatedEncoding at the exact signature/edge layout. Uniform recognition: OriginalFamilyInput.Input, packed through the original layout, plus valid representation hypotheses."},{"label":"Input promises","text":"Original ordered ports and graph occurrences preserved. Zero/nullary signatures remain. Theorem 1.2 assumes literal binary equality member; 1.3 assumes an actual arity-4 member q with odd Hamming-weight entries zero, q(0000)*q(1111) nonzero, and TensorPrime q."},{"label":"Outputs","text":"Evaluation uses OriginalFamily.presentation(...).encoding in a fixed family field with rational coordinates. Recognition uses the original output packet and exact TM2OutputsInTime clock."},{"label":"Auxiliary resources","text":"1.1: equality edges, explicitly added X vertex label; criterion TractX(K(F union {I})). 1.2: native X edges, literal I member in F, criterion TractX(K(F)). 1.3: native X edges and given quaternary member, criterion Tract(K(F)); no I added. 2.19: equality edges and Tract(F)."},{"label":"Reduction","text":"Original natural-valued witness counting sources reduce to the specified family-field value through WitnessCountingHard and original polynomial-time oracle reduction; do not replace it with D's stronger strict-root length-controlled public contract or F1 parsimonious reduction."},{"label":"Cost","text":"Finite polynomial-time machine for each fixed family; recognition preserves actual executes.cost but makes no polynomial uniform bound. Original oracle transition model and concrete composition size hypotheses remain."},{"label":"Limits","text":"Four distinct resource contracts; recognition of a criterion does not require that the language meet the separate literal-I or quaternary evaluation hypothesis. No general arbitrary-domain, planar, #P-membership or class-separation claim."}],"id":"holant-binary","original_source_url":"https://github.com/liuchliuch/holant-binary-disequality-lean/tree/ec3e598e380c57e1c4d1a3c73a4ad1b4f7eed711","paper_note":"Revised manuscript bundled with pinned release; original arXiv:2609.00219, not asserted identical to arXiv v1","paper_url":"https://arxiv.org/abs/2609.00219","public_import":"Counting.Flagships.Holant","reference_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/docs/references.md","title":"Binary-disequality Holant dichotomies (B)"},{"category":"flagships","fields":[{"label":"Fixed parameters","text":"Evaluation: finite domain and indexed language, Field K, DecidableEq K, Algebra Q K, finite rational basis, and embedding sigma:K->C; machine and polynomial may depend on these. Recognition: language/domain sizes, positive arities, exact polynomial/isolating-rectangle entries, and positive degree modulus are runtime data."},{"label":"Runtime inputs","text":"Evaluation: original canonical valid CSP instance code. Recognition: FiniteAlgebraicLanguage L plus L.Valid, with represented complex tables z. The combined theorem additionally takes a supplied basis-realized language M and hM identifying its embedded values with z."},{"label":"Input promises","text":"Positive arity for every language symbol. Recognition/structural-collapse use nonempty domain. Direct ordinary_jointBO classification allows empty D; ordinary_conditions requires Nonempty D. Degree evaluator/recognizer/classification requires 0<delta; degree_structural_collapse equivalence itself has no positivity premise. Degree promise counts literal occurrence multiplicities and requires each variable degree divisible by delta."},{"label":"Outputs","text":"Recognition Boolean. Evaluation canonical numberFieldEncoding basis rational-coordinate output. No natural-valued #P membership asserted for arbitrary complex partition values."},{"label":"Auxiliary resources","text":"Literal fixed indexed language with duplicate tables, repeated constraints and repeated scopes retained. No freely adjoined pinning, equality or arbitrary unary resources. Generated partial-sum/product tables are part of structural semantics, not a free runtime resource grant."},{"label":"Reduction","text":"Natural #P source functions reduce to fixed-language partitionProblem or degreePartitionProblem through PlanarHom.PromisedSharpPHard / PromisePolyTimeTuringReduction. Source and oracle promises and output recovery are retained; no claim of natural parsimonious output equality."},{"label":"Cost","text":"Terminating uniform encoded recognition; fixed-language actual bounded bit-machine FP branch; charged promise Turing hardness with query/reply bits. No uniform polynomial language recognition or free runtime field/basis search."},{"label":"Limits","text":"Recognition, structural equivalence, fixed-language FP and hardness are separate contracts; ordinary/degree domains and positive-modulus premises differ. This port reuses completed original classification proofs and makes no new classification claim."}],"id":"complex-csp","original_source_url":"https://github.com/liuchliuch/complex-csp-decidability-lean/tree/c454c2d6426cd8b9f9bcfd3e54bd69de1dcf48ec","paper_note":"arXiv:2608.14845v1 with explicitly proved all-finite-instance correction of Theorem 5.2","paper_url":"https://arxiv.org/abs/2608.14845v1","public_import":"Counting.Flagships.ComplexCSP","reference_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/docs/references.md","title":"ComplexCSP structural collapse, uniform recognition and fixed-language classification"},{"category":"flagships","fields":[{"label":"Fixed parameters","text":"For evaluation and hardness: valid exact finite Boolean language L, original graph label layout, ordinary or native-X wiring. Machine and polynomial depend on L. For recognition: a single ordinary and a single native finite machine precede all valid runtime descriptor lists."},{"label":"Runtime inputs","text":"Evaluation receives validated original RawClosedNetwork bytes. Recognition receives all finite exact algebraic table entries, arities and language size as RawLanguage."},{"label":"Input promises","text":"Each table has 2^arity entries, every exact RootCode is valid; arbitrary mixed finite arities, zero and nullary signatures allowed. Graph preserves ordered ports, loops, parallel edges, isolated nullary vertices. Recognition only asserts halting/correctness for raw.Valid."},{"label":"Outputs","text":"Evaluation returns RootCode.MinimalRepresents: strict monic irreducible rational minimal polynomial and rational isolating rectangle; descriptors need not be unique. Recognition returns Boolean with actual finite halting run."},{"label":"Auxiliary resources","text":"Ordinary equality edge kernel or native-X disequality edge kernel. No implicit pinning, arbitrary unary, equality-vertex label or infinite resource family. Native criterion is Tract(kImage L), while the evaluated graph language remains L."},{"label":"Reduction","text":"Every natural-valued source f satisfying original InSharpP reduces to the L evaluation problem, for every bounded correct public answer convention, through LengthControlledOracleReduction. BoundedAnswers is explicitly nonempty."},{"label":"Cost","text":"Fixed-language polynomial finite TM2 graph-bit evaluator; hardness contains target output-length and safe-query polynomial bounds. Basic oracle reply delivery is one abstract oracle transition; concrete inlining separately charges callee time, copying, old-answer clearing and protocol work. No uniform polynomial recognition bound."},{"label":"Limits","text":"Boolean-domain ordinary-graph classification. Structural branches are exclusive; no unconditional FP/#P-hard separation, arbitrary-domain classification, planar hardness, or natural-valued #P membership for complex evaluation."}],"id":"holant-full","original_source_url":"https://github.com/liuchliuch/holant-dichotomy-lean/tree/97731bce1618bef0d9ee7911b6ac8bc8698077b2","paper_note":"arXiv:2610.00081v1","paper_url":"https://arxiv.org/abs/2610.00081v1","public_import":"Counting.Flagships.Holant","reference_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/docs/references.md","title":"Full complex Boolean Holant dichotomy (D)"},{"category":"flagships","fields":[{"label":"Fixed parameters","text":"q and RealLanguage q 1 0: one fixed algebraic real interaction matrix, zero unary labels, fixed algebraic real vertex weights. Its common number field and rational basis determine exact output representation."},{"label":"Runtime inputs","text":"Original raw bit words for ordinary planar multigraph evaluation; no supplied planar embedding is required by this public promise."},{"label":"Input promises","text":"Theorem 1.1: symmetric nonnegative matrix and every vertex weight 1. Theorem 1.3: symmetric nonnegative matrix and strictly positive vertex weights. Ordinary raw planar promise, preserving successful noncanonical decoding/normalization in the underlying model. Loops, parallel edges, isolated vertices, empty graph and q=0 are not excluded."},{"label":"Outputs","text":"Canonical rational coordinates in the fixed common algebraic real field, interpreted by the original embedding as the literal graph partition sum."},{"label":"Auxiliary resources","text":"One binary interaction label and no unary palette in the public RealLanguage q 1 0 statement. Theorem 1.3 uses the complete identical-row quotient with class-weight sums; no row-injectivity premise or free pinning resource."},{"label":"Reduction","text":"Natural #P sources reduce to L.problem through original charged PromisedSharpPHard / PromisePolyTimeTuringReduction with valid planar oracle queries. These are planar-target hardness statements; source ordinary-graph CSP hardness is not substituted for them."},{"label":"Cost","text":"Fixed-language actual bit-machine InFP positive branch and charged promise Turing reduction negative branch. Field/basis and target matrix fixed, no runtime field-search or uniform recognition promise."},{"label":"Limits","text":"Theorem11Statement/13Statement are independent specification definitions; MainDichotomiesClosed supplies closed proofs. Full/arbitrary-real Appendix and supplied-surface-embedding corollaries are separate, outside this import's main classification claim. Structural branches do not assert complexity-class separation."}],"id":"planar-homomorphisms","original_source_url":"https://github.com/liuchliuch/planar-homomorphisms-lean/tree/db68e745380769c38c8347736d2d84fcde38263c","paper_note":"Pinned source manuscript A Dichotomy for Planar Graph Homomorphisms with Nonnegative Weights; the contract follows the manuscript bundled with the pinned Lean source","public_import":"Counting.Flagships.PlanarHom","reference_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/docs/references.md","title":"Nonnegative planar graph homomorphism dichotomy"},{"category":"flagships","fields":[{"label":"Fixed parameters","text":"Each theorem quantifies mathematical common presentations/labelled languages and instance classes, not a machine language to evaluate. Qutrit trichotomy fixes domain Fin 3 and a common presentation with baseMatrix rank 3, both left/right port deficiency and both left/right support essentiality."},{"label":"Runtime inputs","text":"No runtime machine input in headline support/width propositions. Ordered planar labelled instance classes and presentations are the quantified mathematical objects."},{"label":"Input promises","text":"Unbounded-family claims require ContainsOrderedPlanar(C k), k>=2, rational coefficient and graph presentations, and the displayed IntegerPositiveDeficient hypotheses. Width minimization compares exact equivalent presentations preserving labels, arities and port order, with arbitrary finite nonempty alternative domains and complex weights."},{"label":"Outputs","text":"Support trichotomy: exactly one ray/mobile/flag alternative under stated premises. Integer family: attained minimum exact common width, explicit lower/upper bounds and Omega(2^(k/2)/k) growth. Other endpoints give field-preserving graph realization and specified compression/equivalence witnesses."},{"label":"Auxiliary resources","text":"Exact labelled common presentation and ordered planar realization assumptions remain. A flag branch alone is not a characterization of minimum width; unboundedness is a separately quantified family theorem."},{"label":"Reduction","text":"No complexity reduction in the headline width/support statements. Compression and exact label-preserving equivalence are semantic/algebraic conclusions, not an automatic #P or FP transfer."},{"label":"Cost","text":"Explicit width/size and asymptotic bounds as displayed; no polynomial bit-time machine theorem in these headline aliases. Exact field-preserving realization is separate from executable coefficient encoding."},{"label":"Limits","text":"Support geometry and representation limits, not arbitrary-domain Holant classification or complexity-class separation. Connection-prime collapse 10.7 has its own assumptions (right essentiality, connection-prime) and must not inherit the trichotomy's premise list blindly."}],"id":"matchgate-width","original_source_url":"https://github.com/liuchliuch/matchgate-width-lean/tree/da4f3a7beda4651a615638c361927820035e83d9","paper_note":"arXiv:2610.00079v1","paper_url":"https://arxiv.org/abs/2610.00079v1","public_import":"Counting.Flagships.MatchgateWidth","reference_url":"https://github.com/liuchliuch/countinglib/blob/6ca34e19e6610f1b785d668d085776129a8e8865/docs/references.md","title":"Qutrit support trichotomy and unbounded exact matchgate width"},{"category":"tools","fields":[{"label":"Fixed parameters","text":"Actual F1 ParsimoniousReduction r and target SharpPWitness w on Computability.encodingList Bool. Source/target counts have codomain Nat."},{"label":"Runtime inputs","text":"All raw List Bool instances and tagged instance/witness pairs; no extra promise or oracle."},{"label":"Promises","text":"P=q.comp L, where L is derived from the reduction program/time and q is target witness length. Actual predicate rejects too-short witnesses, uses the first t target bits, requires every remaining bit false. No supplied verifier correctness, pair lifting or cost proof is required beyond r and w."},{"label":"Outputs","text":"Explicit source SharpPWitness and InSharpP transport; ParsimoniousReduces.inSharpP and ParsimoniousEquivalent.inSharpP_iff."},{"label":"Resources","text":"Witness preservation is actual machine work through tagged/framed transducers, materialized pair lifting, length/poly evaluation, prefix/suffix scan, target verifier, Boolean conversion and finite alphabet restriction."},{"label":"Direction","text":"r:f->g and InSharpP(g) imply InSharpP(f), for this standard bits encoding. Arbitrary abstract codecs are not silently generalized."},{"label":"Cost","text":"The verifier_time_bound is in whole pair encoded length; verifier_steps exposes the actual subrun sum, including retained witness. Pure padded-count equalities remain in Basic; machine construction is separate."},{"label":"Examples","text":"Reversal-derived L(n)=2n+1 gives five source witness bits for a two-bit target; unique suffix yields count 3, ignored suffix yields 24. True padding, short/empty witness, empty prefix and zero-bit witness are checked; physical pair framing overhead is 32 transitions in the concrete run."}],"id":"sharpp","title":"Actual public binary #P downward closure"},{"category":"tools","fields":[{"label":"Fixed parameters","text":"Canonical Holant.OpenNetwork over Bool, CommSemiring R; boundary order and actual vertex/edge records retained. BoundaryComplement itself works over any finite D without Nonempty D."},{"label":"Runtime inputs","text":"Semantic network and boundary assignment, not a byte machine. All boundary assignments are quantified."},{"label":"Promises","text":"Raw uses the actual boundary-image complement. Corrected tensor adds a hidden copy of the raw boundary and n explicitly oriented boundary-kernel occurrences. Corrected disjoint composition requires the original common EdgeKind W and per-edge hypotheses; raw composition permits mixed kinds."},{"label":"Outputs","text":"S1 partition equals canonical raw or corrected tensor, separately. Actual canonical disjointUnion and boundary-reorder commuting laws; ordinary/closed compatibility with the prior S1 bridge."},{"label":"Resources","text":"Instance-generated palette includes actual vertex functions and edge kernels; corrected palette explicitly includes boundary kernels. It does not grant those tables to an arbitrary fixed language."},{"label":"Cost","text":"Noncomputable semantic conversions and equivalences; no codec, polynomial bit-time, fixed-language reduction, planarity or degree-preservation theorem."},{"label":"Examples","text":"Paired disequality stub raw [3,2], tensor [2,3]; first composition 21/14, boundary swap 10/15, second composition 20/45. Empty-domain generic assignment cases explicitly covered."}],"id":"open","title":"Canonical OpenNetwork and S1"},{"category":"tools","fields":[{"label":"Fixed parameters","text":"Finite signature/edge layouts, arity function, fixed well-formed Template family. ExactField fixes FixedField K n and rational coordinate ExactSignatureTables; no runtime language/field search."},{"label":"Runtime inputs","text":"Original validated RawClosedNetwork encoding. Local gadget-realization identities are hypotheses; compiler correctness, output-size and machine costs are proved."},{"label":"Promises","text":"Ordered graph records with loops, parallel edges, nullary vertices and empty graphs; each repeated macro occurrence receives fresh internal-edge blocks. Prefix extension requires explicit arity agreement and exact table-prefix/local-realization hypotheses."},{"label":"Outputs","text":"Literal compiler output and exact value equality. Nat tables give F1 ParsimoniousReduction. ExactField uses the same coefficient-coordinate F.encoding on source/target and original PolyTimeOracleReduction with identity answer recovery."},{"label":"Resources","text":"No implicit equality, pinning, unary or additional kernel. S1 alignment applies to the supported canonical network image; arbitrary S1 incidence has no serializer here."},{"label":"Direction","text":"Extension -> base elimination gives base FP -> extension FP and extension hardness -> base hardness. Prefix inclusion gives equivalence. This does not invert D FiniteResources strict RootCode interface without a separately proved representation/cost bridge."},{"label":"Cost","text":"Finite Boolean-stack compiler, original encoded-length polynomial and same-run primitive bound. ExactField answer copying is charged using target outputBound; returned reduction is not LengthControlledOracleReduction. Only an already length-controlled caller is transported by the canonical inlining theorem."},{"label":"Examples","text":"Binary base [[1,2],[3,4]], macro square [[7,10],[15,22]], two occurrences compile to four vertices with fresh edge IDs 2 and 3, value 858. Separate S1 client retains one isolate and two independent internal pairs, six occurrences, value 98. Original 18/32 substitution client remains in All."}],"id":"gadget","title":"Exact fixed-gadget elimination"},{"category":"tools","fields":[{"label":"Fixed parameters","text":"Field K, DecidableEq K where required, Algebra Q K, finite dimension and rational Module.Basis fixed before runtime. Exact numberFieldEncoding basis retained."},{"label":"Runtime inputs","text":"Field values or actual runtime lists/interpolation tables encoded in that fixed basis."},{"label":"Promises","text":"Field division is total: x/0=0, including 0/0. Coefficient recovery requires its original distinct-node and degree hypotheses. Nonzero divisor is needed only for the client equation equivalence, not for machine execution."},{"label":"Outputs","text":"Original FP actual TM2 certificates, same-computer outputs/time/steps/output-length and intermediate-stack bounds. Arithmetic public aliases resolve to canonical PlanarHom declarations."},{"label":"Resources","text":"No field/basis search, Holant fixed-coordinate/RootCode conversion, or free field operations. Height entry carries dimension/cleared-coordinate budgets separately."},{"label":"Cost","text":"Polynomial in the complete original serialized input. Composition client uses actual pairing/projection and machine composition. Materialized interpolation preserves equality filter, differences, products, divisions, sums and finite-alphabet refinement."},{"label":"Examples","text":"Independent normalize-and-compare computes (7-3)/2=2; zero divisor remains certified. Existing materialized quadratic data returns coefficient two through the new entry."}],"id":"arithmetic","title":"Fixed-basis exact arithmetic and actual consumers"},{"category":"tools","fields":[{"label":"Fixed parameters","text":"Finite palette values:Fin q->K; machine fixes FixedField K d and rational table Fin q->Fin d->Q. Palette may contain duplicate/zero coefficients."},{"label":"Runtime inputs","text":"Genuine S1 occurrence list for nullary scalar, unary pair, equality/disequality, explicit unary-coded variable count, finite palette addresses."},{"label":"Promises","text":"Ordered/multiple occurrences, repeated scope variable, nullary factors and isolated variables retained. Input codec is exactly the original LabelledFactor representation transported through proved inverse maps; valid encoded inputs, no extra all-malformed rejection behavior."},{"label":"Outputs","text":"Same S1 partition in F.encoding, actual clean outputs_partition, decode law, identical original machine/time and same-run transition/primitive bounds."},{"label":"Resources","text":"Uses the canonical factor-input Product solver, not RawClosedNetwork/FamilyFieldSolver. It already accepts arbitrary indexed Product factors; no incidence-to-network conversion or extra resource grant to another language is inferred."},{"label":"Direction","text":"Frontend value/codec transport to existing exact field-valued Holant InFP. No natural-valued #P membership or runtime-variable language/basis algorithm."},{"label":"Cost","text":"No hidden host preprocessing: input bytes are already the original records; conversionComputes is an actual identity-machine witness. variableCount_le_inputLength charges isolates. Original physical parser, elimination, palette lookup, field arithmetic and output cleanup remain in the charged run."},{"label":"Examples","text":"Rational palette [0,1,-1,2,3,5]: repeated occurrence/scope + isolate 228; cancellation 0; zero scalar 0; repeated nullaries 18; five isolates 32."}],"id":"product","title":"Fixed-palette Product S1 input to canonical machine"}],"inputs":[{"path":"data/api/core-index.json","sha256":"d68de592e9453665add6c5e14e3e419ae6d7fae75ffae9a864f0202112fcb16d"},{"path":"data/api/core-types.jsonl","sha256":"794cc974fe0a18291af516e3a4419498973660cdc66f9833117cf367c9ab1931"},{"path":"data/api/readable-types.jsonl","sha256":"9444d7c78366f9020866fa51c48238d378e9e32f9820c8cd2e4642ee93dd900d"},{"path":"lean-toolchain","sha256":"d5edba4e4b8faad9c1baeadb265716d20d03be4d1a2647dc5e35b0c0325bea7b"},{"path":"projects/reuse-catalog/data/exported-types.jsonl","sha256":"886bc7f23d889a4f5dc397b55d691502b0171ab4046a012e9444d4cf55af1f85"},{"path":"projects/reuse-catalog/data/tool-index.json","sha256":"9ffe0abc03a792b0e9428f4ce029a0a7087daab4931e69bd41b84e4be5089f0d"},{"path":"projects/reuse-contracts/data/exported-types.jsonl","sha256":"8c5e3bdabfe289565fdb5788bffdf75e31b3dde45e6f3f722051eca320e2af2f"},{"path":"projects/reuse-contracts/data/flagship-index.json","sha256":"6c272d21694ca205566a6247831c2f5c78d74aad3af2603cbe7e699fd9a6519a"}],"repository":"https://github.com/liuchliuch/countinglib","schema_version":1,"scope":"Selected public interfaces: foundations, algorithms, intermediate tools, and four flagship directions. This is not the complete declaration reference. Full elaborated types are rendered from the recorded Lean environment exports; this site is not a proof certificate.","source_files_checked":80,"source_ref":"6ca34e19e6610f1b785d668d085776129a8e8865","version":"v0.1.1 preview"}
