{α : Type} →
  [inst : Hashable α] →
    [inst_1 : DecidableEq α] →
      {aig : Std.Sat.AIG α} →
        {m : ℕ} →
          {motive : aig.ArbitraryShiftTarget m → Sort u} →
            (t : aig.ArbitraryShiftTarget m) →
              ((n : ℕ) →
                  (target : aig.RefVec m) →
                    (distance : aig.RefVec n) → motive { n := n, target := target, distance := distance }) →
                motive t