{α : Type} →
  (motive : Std.Sat.AIG.Decl α → Sort u_1) →
    (decl : Std.Sat.AIG.Decl α) →
      ((a : α) → decl = Std.Sat.AIG.Decl.atom a → motive (Std.Sat.AIG.Decl.atom a)) →
        (decl = Std.Sat.AIG.Decl.false → motive Std.Sat.AIG.Decl.false) →
          ((lhs rhs : Std.Sat.AIG.Fanin) →
              decl = Std.Sat.AIG.Decl.gate lhs rhs → motive (Std.Sat.AIG.Decl.gate lhs rhs)) →
            motive decl