universes l1 l2 constants (X : Type.{l1}) (P : X → Type.{l2}) (P_ss : ∀ x, subsingleton (P x)) constants (x1 x2 : X) (px1a px1b : P x1) (px2a px2b : P x2) attribute P_ss [instance] constants (f : Π (x1 x2 : X), P x1 → P x2 → Prop) #abstract_expr 0 f #abstract_expr 0 f x1 #abstract_expr 0 f x1 x2 #abstract_expr 0 f x1 x2 px1a #abstract_expr 0 f x1 x2 px1b #abstract_expr 0 f x1 x2 px1a px2a #abstract_expr 0 f x1 x2 px1a px2b #abstract_expr 1 f #abstract_expr 1 f x1 #abstract_expr 1 f x1 x2 #abstract_expr 1 f x1 x2 px1a #abstract_expr 1 f x1 x2 px1b #abstract_expr 1 f x1 x2 px1a px2a #abstract_expr 1 f x1 x2 px1a px2b #abstract_expr 2 f x1 x2, f x2 x1 #abstract_expr 2 f x1 x2, f x1 x2 px1a #abstract_expr 2 f x1 x2 px1a, f x1 x2 px1b #abstract_expr 2 f x1 x2 px1a px2a, f x1 x2 px1b #abstract_expr 2 f x1 x2 px1a px2a, f x1 x2 px1b px2b #abstract_expr 3 f x1, f x1 #abstract_expr 3 f x1 x2, f x2 x1 #abstract_expr 3 f x2 x1, f x1 x2 #abstract_expr 3 f x1 x2, f x1 x2 px1a #abstract_expr 3 f x1 x2 px1a, f x1 x2 px1b #abstract_expr 3 f x1 x2 px1a px2a, f x1 x2 px1b #abstract_expr 3 f x1 x2 px1a, f x1 x2 px1b px2b #abstract_expr 3 f x1 x2 px1a px2a, f x1 x2 px1b px2b