/-- The functor `WalkingParallelPair ⥤ WalkingParallelPairᵒᵖ` sending left to left and right to
right.
-/
def walkingParallelPairOp : WalkingParallelPair ⥤ WalkingParallelPairᵒᵖ where
  obj x := op <| by cases x; exacts [one, zero]
  map f := by
    cases f <;> apply Quiver.Hom.op
    exacts [left, right, WalkingParallelPairHom.id _]
  map_comp := by 

Proof state:
⊢ ∀ {X Y Z : WalkingParallelPair} (f : X ⟶ Y) (g : Y ⟶ Z),
    {
            obj := fun x =>
              op
                (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x (fun h => one)
                  (fun h => zero) (_ : x = x)),
            map := fun {X Y} f =>
              WalkingParallelPairHom.casesOn (motive := fun a a_1 t =>
                X = a →
                  Y = a_1 →
                    HEq f t →
                      ((fun x =>
                            op
                              (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                (fun h => one) (fun h => zero) (_ : x = x)))
                          X ⟶
                        (fun x =>
                            op
                              (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                (fun h => one) (fun h => zero) (_ : x = x)))
                          Y))
                f
                (fun h =>
                  Eq.ndrec (motive := fun {X} =>
                    (f : X ⟶ Y) →
                      Y = one →
                        HEq f left →
                          ((fun x =>
                                op
                                  (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                    (fun h => one) (fun h => zero) (_ : x = x)))
                              X ⟶
                            (fun x =>
                                op
                                  (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                    (fun h => one) (fun h => zero) (_ : x = x)))
                              Y))
                    (fun f h =>
                      Eq.ndrec (motive := fun {Y} =>
                        (f : zero ⟶ Y) →
                          HEq f left →
                            ((fun x =>
                                  op
                                    (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                      (fun h => one) (fun h => zero) (_ : x = x)))
                                zero ⟶
                              (fun x =>
                                  op
                                    (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                      (fun h => one) (fun h => zero) (_ : x = x)))
                                Y))
                        (fun f h => left.op) (_ : one = Y) f)
                    (_ : zero = X) f)
                (fun h =>
                  Eq.ndrec (motive := fun {X} =>
                    (f : X ⟶ Y) →
                      Y = one →
                        HEq f right →
                          ((fun x =>
                                op
                                  (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                    (fun h => one) (fun h => zero) (_ : x = x)))
                              X ⟶
                            (fun x =>
                                op
                                  (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                    (fun h => one) (fun h => zero) (_ : x = x)))
                              Y))
                    (fun f h =>
                      Eq.ndrec (motive := fun {Y} =>
                        (f : zero ⟶ Y) →
                          HEq f right →
                            ((fun x =>
                                  op
                                    (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                      (fun h => one) (fun h => zero) (_ : x = x)))
                                zero ⟶
                              (fun x =>
                                  op
                                    (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                      (fun h => one) (fun h => zero) (_ : x = x)))
                                Y))
                        (fun f h => right.op) (_ : one = Y) f)
                    (_ : zero = X) f)
                (fun X_1 h =>
                  Eq.ndrec (motive := fun X_2 =>
                    Y = X_2 →
                      HEq f (WalkingParallelPairHom.id X_2) →
                        ((fun x =>
                              op
                                (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                  (fun h => one) (fun h => zero) (_ : x = x)))
                            X ⟶
                          (fun x =>
                              op
                                (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                  (fun h => one) (fun h => zero) (_ : x = x)))
                            Y))
                    (fun h =>
                      Eq.ndrec (motive := fun {Y} =>
                        (f : X ⟶ Y) →
                          HEq f (WalkingParallelPairHom.id X) →
                            ((fun x =>
                                  op
                                    (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                      (fun h => one) (fun h => zero) (_ : x = x)))
                                X ⟶
                              (fun x =>
                                  op
                                    (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                      (fun h => one) (fun h => zero) (_ : x = x)))
                                Y))
                        (fun f h =>
                          (WalkingParallelPairHom.id
                              (WalkingParallelPair.casesOn (motive := fun t => X = t → WalkingParallelPair) X
                                (fun h => one) (fun h => zero) (_ : X = X))).op)
                        (_ : X = Y) f)
                    h)
                (_ : X = X) (_ : Y = Y) (_ : HEq f f) }.map
        (f ≫ g) =
      {
              obj := fun x =>
                op
                  (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x (fun h => one)
                    (fun h => zero) (_ : x = x)),
              map := fun {X Y} f =>
                WalkingParallelPairHom.casesOn (motive := fun a a_1 t =>
                  X = a →
                    Y = a_1 →
                      HEq f t →
                        ((fun x =>
                              op
                                (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                  (fun h => one) (fun h => zero) (_ : x = x)))
                            X ⟶
                          (fun x =>
                              op
                                (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                  (fun h => one) (fun h => zero) (_ : x = x)))
                            Y))
                  f
                  (fun h =>
                    Eq.ndrec (motive := fun {X} =>
                      (f : X ⟶ Y) →
                        Y = one →
                          HEq f left →
                            ((fun x =>
                                  op
                                    (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                      (fun h => one) (fun h => zero) (_ : x = x)))
                                X ⟶
                              (fun x =>
                                  op
                                    (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                      (fun h => one) (fun h => zero) (_ : x = x)))
                                Y))
                      (fun f h =>
                        Eq.ndrec (motive := fun {Y} =>
                          (f : zero ⟶ Y) →
                            HEq f left →
                              ((fun x =>
                                    op
                                      (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                        (fun h => one) (fun h => zero) (_ : x = x)))
                                  zero ⟶
                                (fun x =>
                                    op
                                      (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                        (fun h => one) (fun h => zero) (_ : x = x)))
                                  Y))
                          (fun f h => left.op) (_ : one = Y) f)
                      (_ : zero = X) f)
                  (fun h =>
                    Eq.ndrec (motive := fun {X} =>
                      (f : X ⟶ Y) →
                        Y = one →
                          HEq f right →
                            ((fun x =>
                                  op
                                    (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                      (fun h => one) (fun h => zero) (_ : x = x)))
                                X ⟶
                              (fun x =>
                                  op
                                    (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                      (fun h => one) (fun h => zero) (_ : x = x)))
                                Y))
                      (fun f h =>
                        Eq.ndrec (motive := fun {Y} =>
                          (f : zero ⟶ Y) →
                            HEq f right →
                              ((fun x =>
                                    op
                                      (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                        (fun h => one) (fun h => zero) (_ : x = x)))
                                  zero ⟶
                                (fun x =>
                                    op
                                      (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                        (fun h => one) (fun h => zero) (_ : x = x)))
                                  Y))
                          (fun f h => right.op) (_ : one = Y) f)
                      (_ : zero = X) f)
                  (fun X_1 h =>
                    Eq.ndrec (motive := fun X_2 =>
                      Y = X_2 →
                        HEq f (WalkingParallelPairHom.id X_2) →
                          ((fun x =>
                                op
                                  (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                    (fun h => one) (fun h => zero) (_ : x = x)))
                              X ⟶
                            (fun x =>
                                op
                                  (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                    (fun h => one) (fun h => zero) (_ : x = x)))
                              Y))
                      (fun h =>
                        Eq.ndrec (motive := fun {Y} =>
                          (f : X ⟶ Y) →
                            HEq f (WalkingParallelPairHom.id X) →
                              ((fun x =>
                                    op
                                      (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                        (fun h => one) (fun h => zero) (_ : x = x)))
                                  X ⟶
                                (fun x =>
                                    op
                                      (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                        (fun h => one) (fun h => zero) (_ : x = x)))
                                  Y))
                          (fun f h =>
                            (WalkingParallelPairHom.id
                                (WalkingParallelPair.casesOn (motive := fun t => X = t → WalkingParallelPair) X
                                  (fun h => one) (fun h => zero) (_ : X = X))).op)
                          (_ : X = Y) f)
                      h)
                  (_ : X = X) (_ : Y = Y) (_ : HEq f f) }.map
          f ≫
        {
              obj := fun x =>
                op
                  (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x (fun h => one)
                    (fun h => zero) (_ : x = x)),
              map := fun {X Y} f =>
                WalkingParallelPairHom.casesOn (motive := fun a a_1 t =>
                  X = a →
                    Y = a_1 →
                      HEq f t →
                        ((fun x =>
                              op
                                (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                  (fun h => one) (fun h => zero) (_ : x = x)))
                            X ⟶
                          (fun x =>
                              op
                                (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                  (fun h => one) (fun h => zero) (_ : x = x)))
                            Y))
                  f
                  (fun h =>
                    Eq.ndrec (motive := fun {X} =>
                      (f : X ⟶ Y) →
                        Y = one →
                          HEq f left →
                            ((fun x =>
                                  op
                                    (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                      (fun h => one) (fun h => zero) (_ : x = x)))
                                X ⟶
                              (fun x =>
                                  op
                                    (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                      (fun h => one) (fun h => zero) (_ : x = x)))
                                Y))
                      (fun f h =>
                        Eq.ndrec (motive := fun {Y} =>
                          (f : zero ⟶ Y) →
                            HEq f left →
                              ((fun x =>
                                    op
                                      (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                        (fun h => one) (fun h => zero) (_ : x = x)))
                                  zero ⟶
                                (fun x =>
                                    op
                                      (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                        (fun h => one) (fun h => zero) (_ : x = x)))
                                  Y))
                          (fun f h => left.op) (_ : one = Y) f)
                      (_ : zero = X) f)
                  (fun h =>
                    Eq.ndrec (motive := fun {X} =>
                      (f : X ⟶ Y) →
                        Y = one →
                          HEq f right →
                            ((fun x =>
                                  op
                                    (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                      (fun h => one) (fun h => zero) (_ : x = x)))
                                X ⟶
                              (fun x =>
                                  op
                                    (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                      (fun h => one) (fun h => zero) (_ : x = x)))
                                Y))
                      (fun f h =>
                        Eq.ndrec (motive := fun {Y} =>
                          (f : zero ⟶ Y) →
                            HEq f right →
                              ((fun x =>
                                    op
                                      (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                        (fun h => one) (fun h => zero) (_ : x = x)))
                                  zero ⟶
                                (fun x =>
                                    op
                                      (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                        (fun h => one) (fun h => zero) (_ : x = x)))
                                  Y))
                          (fun f h => right.op) (_ : one = Y) f)
                      (_ : zero = X) f)
                  (fun X_1 h =>
                    Eq.ndrec (motive := fun X_2 =>
                      Y = X_2 →
                        HEq f (WalkingParallelPairHom.id X_2) →
                          ((fun x =>
                                op
                                  (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                    (fun h => one) (fun h => zero) (_ : x = x)))
                              X ⟶
                            (fun x =>
                                op
                                  (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                    (fun h => one) (fun h => zero) (_ : x = x)))
                              Y))
                      (fun h =>
                        Eq.ndrec (motive := fun {Y} =>
                          (f : X ⟶ Y) →
                            HEq f (WalkingParallelPairHom.id X) →
                              ((fun x =>
                                    op
                                      (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                        (fun h => one) (fun h => zero) (_ : x = x)))
                                  X ⟶
                                (fun x =>
                                    op
                                      (WalkingParallelPair.casesOn (motive := fun t => x = t → WalkingParallelPair) x
                                        (fun h => one) (fun h => zero) (_ : x = x)))
                                  Y))
                          (fun f h =>
                            (WalkingParallelPairHom.id
                                (WalkingParallelPair.casesOn (motive := fun t => X = t → WalkingParallelPair) X
                                  (fun h => one) (fun h => zero) (_ : X = X))).op)
                          (_ : X = Y) f)
                      h)
                  (_ : X = X) (_ : Y = Y) (_ : HEq f f) }.map
          g

Next tactic:
rintro _ _ _ (_|_|_) g