{A : Type u_1} →
  [inst : AddMonoid A] →
    {motive : Finset.HasAntidiagonal A → Sort u} →
      ((antidiagonal : A → Finset (A × A)) →
          (mem_antidiagonal : ∀ {n : A} {a : A × A}, a ∈ antidiagonal n ↔ a.1 + a.2 = n) →
            motive { antidiagonal := antidiagonal, mem_antidiagonal := mem_antidiagonal }) →
        (t : Finset.HasAntidiagonal A) → motive t