combinatorics.simple_graph.triangle.basicMathlib.Combinatorics.SimpleGraph.Triangle.Basic

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(last sync)

feat(combinatorics/simple_graph): More clique lemmas (#19203)

More lemmas about is_clique, is_n_clique, edge_set. Also define clique_free_on, a local version of clique_free.

Diff
@@ -42,7 +42,8 @@ G.delete_far (λ H, H.clique_free 3) $ ε * (card α^2 : ℕ)
 
 lemma far_from_triangle_free_iff :
   G.far_from_triangle_free ε ↔
-    ∀ ⦃H⦄, H ≤ G → H.clique_free 3 → ε * (card α^2 : ℕ) ≤ G.edge_finset.card - H.edge_finset.card :=
+    ∀ ⦃H : simple_graph _⦄ [decidable_rel H.adj], by exactI
+      H ≤ G → H.clique_free 3 → ε * (card α^2 : ℕ) ≤ G.edge_finset.card - H.edge_finset.card :=
 delete_far_iff
 
 alias far_from_triangle_free_iff ↔ far_from_triangle_free.le_card_sub_card _

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(first ported)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -82,7 +82,7 @@ variable [Nonempty α]
 theorem FarFromTriangleFree.nonpos (h₀ : G.FarFromTriangleFree ε) (h₁ : G.CliqueFree 3) : ε ≤ 0 :=
   by
   have := h₀ (empty_subset _)
-  rw [coe_empty, Finset.card_empty, cast_zero, delete_edges_empty_eq] at this 
+  rw [coe_empty, Finset.card_empty, cast_zero, delete_edges_empty_eq] at this
   exact nonpos_of_mul_nonpos_left (this h₁) (cast_pos.2 <| sq_pos_of_pos Fintype.card_pos)
 #align simple_graph.far_from_triangle_free.nonpos SimpleGraph.FarFromTriangleFree.nonpos
 -/
Diff
@@ -5,7 +5,7 @@ Authors: Yaël Dillies, Bhavik Mehta
 -/
 import Combinatorics.SimpleGraph.Clique
 
-#align_import combinatorics.simple_graph.triangle.basic from "leanprover-community/mathlib"@"ee05e9ce1322178f0c12004eb93c00d2c8c00ed2"
+#align_import combinatorics.simple_graph.triangle.basic from "leanprover-community/mathlib"@"3365b20c2ffa7c35e47e5209b89ba9abdddf3ffe"
 
 /-!
 # Triangles in graphs
@@ -51,8 +51,8 @@ def FarFromTriangleFree (G : SimpleGraph α) (ε : 𝕜) : Prop :=
 #print SimpleGraph.farFromTriangleFree_iff /-
 theorem farFromTriangleFree_iff :
     G.FarFromTriangleFree ε ↔
-      ∀ ⦃H⦄,
-        H ≤ G → H.CliqueFree 3 → ε * (card α ^ 2 : ℕ) ≤ G.edgeFinset.card - H.edgeFinset.card :=
+      ∀ ⦃H : SimpleGraph _⦄ [DecidableRel H.Adj],
+        H ≤ G → H.clique_free 3 → ε * (card α ^ 2 : ℕ) ≤ G.edge_finset.card - H.edge_finset.card :=
   deleteFar_iff
 #align simple_graph.far_from_triangle_free_iff SimpleGraph.farFromTriangleFree_iff
 -/
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Yaël Dillies, Bhavik Mehta. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies, Bhavik Mehta
 -/
-import Mathbin.Combinatorics.SimpleGraph.Clique
+import Combinatorics.SimpleGraph.Clique
 
 #align_import combinatorics.simple_graph.triangle.basic from "leanprover-community/mathlib"@"ee05e9ce1322178f0c12004eb93c00d2c8c00ed2"
 
Diff
@@ -60,11 +60,11 @@ theorem farFromTriangleFree_iff :
 alias ⟨far_from_triangle_free.le_card_sub_card, _⟩ := far_from_triangle_free_iff
 #align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_card
 
-#print SimpleGraph.farFromTriangleFree.mono /-
-theorem farFromTriangleFree.mono (hε : G.FarFromTriangleFree ε) (h : δ ≤ ε) :
+#print SimpleGraph.FarFromTriangleFree.mono /-
+theorem FarFromTriangleFree.mono (hε : G.FarFromTriangleFree ε) (h : δ ≤ ε) :
     G.FarFromTriangleFree δ :=
   hε.mono <| mul_le_mul_of_nonneg_right h <| cast_nonneg _
-#align simple_graph.far_from_triangle_free.mono SimpleGraph.farFromTriangleFree.mono
+#align simple_graph.far_from_triangle_free.mono SimpleGraph.FarFromTriangleFree.mono
 -/
 
 #print SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty' /-
Diff
@@ -57,7 +57,7 @@ theorem farFromTriangleFree_iff :
 #align simple_graph.far_from_triangle_free_iff SimpleGraph.farFromTriangleFree_iff
 -/
 
-alias far_from_triangle_free_iff ↔ far_from_triangle_free.le_card_sub_card _
+alias ⟨far_from_triangle_free.le_card_sub_card, _⟩ := far_from_triangle_free_iff
 #align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_card
 
 #print SimpleGraph.farFromTriangleFree.mono /-
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2022 Yaël Dillies, Bhavik Mehta. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies, Bhavik Mehta
-
-! This file was ported from Lean 3 source module combinatorics.simple_graph.triangle.basic
-! leanprover-community/mathlib commit ee05e9ce1322178f0c12004eb93c00d2c8c00ed2
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Combinatorics.SimpleGraph.Clique
 
+#align_import combinatorics.simple_graph.triangle.basic from "leanprover-community/mathlib"@"ee05e9ce1322178f0c12004eb93c00d2c8c00ed2"
+
 /-!
 # Triangles in graphs
 
Diff
@@ -51,49 +51,63 @@ def FarFromTriangleFree (G : SimpleGraph α) (ε : 𝕜) : Prop :=
 #align simple_graph.far_from_triangle_free SimpleGraph.FarFromTriangleFree
 -/
 
+#print SimpleGraph.farFromTriangleFree_iff /-
 theorem farFromTriangleFree_iff :
     G.FarFromTriangleFree ε ↔
       ∀ ⦃H⦄,
         H ≤ G → H.CliqueFree 3 → ε * (card α ^ 2 : ℕ) ≤ G.edgeFinset.card - H.edgeFinset.card :=
   deleteFar_iff
 #align simple_graph.far_from_triangle_free_iff SimpleGraph.farFromTriangleFree_iff
+-/
 
 alias far_from_triangle_free_iff ↔ far_from_triangle_free.le_card_sub_card _
 #align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_card
 
+#print SimpleGraph.farFromTriangleFree.mono /-
 theorem farFromTriangleFree.mono (hε : G.FarFromTriangleFree ε) (h : δ ≤ ε) :
     G.FarFromTriangleFree δ :=
   hε.mono <| mul_le_mul_of_nonneg_right h <| cast_nonneg _
 #align simple_graph.far_from_triangle_free.mono SimpleGraph.farFromTriangleFree.mono
+-/
 
+#print SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty' /-
 theorem FarFromTriangleFree.cliqueFinset_nonempty' (hH : H ≤ G) (hG : G.FarFromTriangleFree ε)
     (hcard : (G.edgeFinset.card - H.edgeFinset.card : 𝕜) < ε * (card α ^ 2 : ℕ)) :
     (H.cliqueFinset 3).Nonempty :=
   nonempty_of_ne_empty <|
     H.cliqueFinset_eq_empty_iff.Not.2 fun hH' => (hG.le_card_sub_card hH hH').not_lt hcard
 #align simple_graph.far_from_triangle_free.clique_finset_nonempty' SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty'
+-/
 
 variable [Nonempty α]
 
+#print SimpleGraph.FarFromTriangleFree.nonpos /-
 theorem FarFromTriangleFree.nonpos (h₀ : G.FarFromTriangleFree ε) (h₁ : G.CliqueFree 3) : ε ≤ 0 :=
   by
   have := h₀ (empty_subset _)
   rw [coe_empty, Finset.card_empty, cast_zero, delete_edges_empty_eq] at this 
   exact nonpos_of_mul_nonpos_left (this h₁) (cast_pos.2 <| sq_pos_of_pos Fintype.card_pos)
 #align simple_graph.far_from_triangle_free.nonpos SimpleGraph.FarFromTriangleFree.nonpos
+-/
 
+#print SimpleGraph.CliqueFree.not_farFromTriangleFree /-
 theorem CliqueFree.not_farFromTriangleFree (hG : G.CliqueFree 3) (hε : 0 < ε) :
     ¬G.FarFromTriangleFree ε := fun h => (h.nonpos hG).not_lt hε
 #align simple_graph.clique_free.not_far_from_triangle_free SimpleGraph.CliqueFree.not_farFromTriangleFree
+-/
 
+#print SimpleGraph.FarFromTriangleFree.not_cliqueFree /-
 theorem FarFromTriangleFree.not_cliqueFree (hG : G.FarFromTriangleFree ε) (hε : 0 < ε) :
     ¬G.CliqueFree 3 := fun h => (hG.nonpos h).not_lt hε
 #align simple_graph.far_from_triangle_free.not_clique_free SimpleGraph.FarFromTriangleFree.not_cliqueFree
+-/
 
+#print SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty /-
 theorem FarFromTriangleFree.cliqueFinset_nonempty (hG : G.FarFromTriangleFree ε) (hε : 0 < ε) :
     (G.cliqueFinset 3).Nonempty :=
   nonempty_of_ne_empty <| G.cliqueFinset_eq_empty_iff.Not.2 <| hG.not_cliqueFree hε
 #align simple_graph.far_from_triangle_free.clique_finset_nonempty SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty
+-/
 
 end SimpleGraph
 
Diff
@@ -78,7 +78,7 @@ variable [Nonempty α]
 theorem FarFromTriangleFree.nonpos (h₀ : G.FarFromTriangleFree ε) (h₁ : G.CliqueFree 3) : ε ≤ 0 :=
   by
   have := h₀ (empty_subset _)
-  rw [coe_empty, Finset.card_empty, cast_zero, delete_edges_empty_eq] at this
+  rw [coe_empty, Finset.card_empty, cast_zero, delete_edges_empty_eq] at this 
   exact nonpos_of_mul_nonpos_left (this h₁) (cast_pos.2 <| sq_pos_of_pos Fintype.card_pos)
 #align simple_graph.far_from_triangle_free.nonpos SimpleGraph.FarFromTriangleFree.nonpos
 
Diff
@@ -36,7 +36,7 @@ This module defines and proves properties about triangles in simple graphs.
 
 open Finset Fintype Nat
 
-open Classical
+open scoped Classical
 
 namespace SimpleGraph
 
Diff
@@ -51,12 +51,6 @@ def FarFromTriangleFree (G : SimpleGraph α) (ε : 𝕜) : Prop :=
 #align simple_graph.far_from_triangle_free SimpleGraph.FarFromTriangleFree
 -/
 
-/- warning: simple_graph.far_from_triangle_free_iff -> SimpleGraph.farFromTriangleFree_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toHasLe.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
-but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
-Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free_iff SimpleGraph.farFromTriangleFree_iffₓ'. -/
 theorem farFromTriangleFree_iff :
     G.FarFromTriangleFree ε ↔
       ∀ ⦃H⦄,
@@ -64,29 +58,14 @@ theorem farFromTriangleFree_iff :
   deleteFar_iff
 #align simple_graph.far_from_triangle_free_iff SimpleGraph.farFromTriangleFree_iff
 
-/- warning: simple_graph.far_from_triangle_free.le_card_sub_card -> SimpleGraph.farFromTriangleFree.le_card_sub_card is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toHasLe.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
-but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
-Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_cardₓ'. -/
 alias far_from_triangle_free_iff ↔ far_from_triangle_free.le_card_sub_card _
 #align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_card
 
-/- warning: simple_graph.far_from_triangle_free.mono -> SimpleGraph.farFromTriangleFree.mono is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜} {δ : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LE.le.{u2} 𝕜 (Preorder.toHasLe.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) δ ε) -> (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G δ)
-but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜} {δ : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) δ ε) -> (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G δ)
-Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.mono SimpleGraph.farFromTriangleFree.monoₓ'. -/
 theorem farFromTriangleFree.mono (hε : G.FarFromTriangleFree ε) (h : δ ≤ ε) :
     G.FarFromTriangleFree δ :=
   hε.mono <| mul_le_mul_of_nonneg_right h <| cast_nonneg _
 #align simple_graph.far_from_triangle_free.mono SimpleGraph.farFromTriangleFree.mono
 
-/- warning: simple_graph.far_from_triangle_free.clique_finset_nonempty' -> SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.clique_finset_nonempty' SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty'ₓ'. -/
 theorem FarFromTriangleFree.cliqueFinset_nonempty' (hH : H ≤ G) (hG : G.FarFromTriangleFree ε)
     (hcard : (G.edgeFinset.card - H.edgeFinset.card : 𝕜) < ε * (card α ^ 2 : ℕ)) :
     (H.cliqueFinset 3).Nonempty :=
@@ -96,12 +75,6 @@ theorem FarFromTriangleFree.cliqueFinset_nonempty' (hH : H ≤ G) (hG : G.FarFro
 
 variable [Nonempty α]
 
-/- warning: simple_graph.far_from_triangle_free.nonpos -> SimpleGraph.FarFromTriangleFree.nonpos is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u1} α], (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (SimpleGraph.CliqueFree.{u1} α G (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toHasLe.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) ε (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))))))
-but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u2} α], (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (SimpleGraph.CliqueFree.{u2} α G (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) ε (OfNat.ofNat.{u1} 𝕜 0 (Zero.toOfNat0.{u1} 𝕜 (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))))))
-Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.nonpos SimpleGraph.FarFromTriangleFree.nonposₓ'. -/
 theorem FarFromTriangleFree.nonpos (h₀ : G.FarFromTriangleFree ε) (h₁ : G.CliqueFree 3) : ε ≤ 0 :=
   by
   have := h₀ (empty_subset _)
@@ -109,32 +82,14 @@ theorem FarFromTriangleFree.nonpos (h₀ : G.FarFromTriangleFree ε) (h₁ : G.C
   exact nonpos_of_mul_nonpos_left (this h₁) (cast_pos.2 <| sq_pos_of_pos Fintype.card_pos)
 #align simple_graph.far_from_triangle_free.nonpos SimpleGraph.FarFromTriangleFree.nonpos
 
-/- warning: simple_graph.clique_free.not_far_from_triangle_free -> SimpleGraph.CliqueFree.not_farFromTriangleFree is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u1} α], (SimpleGraph.CliqueFree.{u1} α G (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LT.lt.{u2} 𝕜 (Preorder.toHasLt.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))))) ε) -> (Not (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε))
-but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u2} α], (SimpleGraph.CliqueFree.{u2} α G (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (OfNat.ofNat.{u1} 𝕜 0 (Zero.toOfNat0.{u1} 𝕜 (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))))) ε) -> (Not (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε))
-Case conversion may be inaccurate. Consider using '#align simple_graph.clique_free.not_far_from_triangle_free SimpleGraph.CliqueFree.not_farFromTriangleFreeₓ'. -/
 theorem CliqueFree.not_farFromTriangleFree (hG : G.CliqueFree 3) (hε : 0 < ε) :
     ¬G.FarFromTriangleFree ε := fun h => (h.nonpos hG).not_lt hε
 #align simple_graph.clique_free.not_far_from_triangle_free SimpleGraph.CliqueFree.not_farFromTriangleFree
 
-/- warning: simple_graph.far_from_triangle_free.not_clique_free -> SimpleGraph.FarFromTriangleFree.not_cliqueFree is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u1} α], (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u2} 𝕜 (Preorder.toHasLt.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))))) ε) -> (Not (SimpleGraph.CliqueFree.{u1} α G (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))
-but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u2} α], (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (OfNat.ofNat.{u1} 𝕜 0 (Zero.toOfNat0.{u1} 𝕜 (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))))) ε) -> (Not (SimpleGraph.CliqueFree.{u2} α G (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
-Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.not_clique_free SimpleGraph.FarFromTriangleFree.not_cliqueFreeₓ'. -/
 theorem FarFromTriangleFree.not_cliqueFree (hG : G.FarFromTriangleFree ε) (hε : 0 < ε) :
     ¬G.CliqueFree 3 := fun h => (hG.nonpos h).not_lt hε
 #align simple_graph.far_from_triangle_free.not_clique_free SimpleGraph.FarFromTriangleFree.not_cliqueFree
 
-/- warning: simple_graph.far_from_triangle_free.clique_finset_nonempty -> SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u1} α], (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u2} 𝕜 (Preorder.toHasLt.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))))) ε) -> (Finset.Nonempty.{u1} (Finset.{u1} α) (SimpleGraph.cliqueFinset.{u1} α G _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)) (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))
-but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u2} α], (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (OfNat.ofNat.{u1} 𝕜 0 (Zero.toOfNat0.{u1} 𝕜 (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))))) ε) -> (Finset.Nonempty.{u2} (Finset.{u2} α) (SimpleGraph.cliqueFinset.{u2} α G _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)) (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
-Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.clique_finset_nonempty SimpleGraph.FarFromTriangleFree.cliqueFinset_nonemptyₓ'. -/
 theorem FarFromTriangleFree.cliqueFinset_nonempty (hG : G.FarFromTriangleFree ε) (hε : 0 < ε) :
     (G.cliqueFinset 3).Nonempty :=
   nonempty_of_ne_empty <| G.cliqueFinset_eq_empty_iff.Not.2 <| hG.not_cliqueFree hε
Diff
@@ -85,10 +85,7 @@ theorem farFromTriangleFree.mono (hε : G.FarFromTriangleFree ε) (h : δ ≤ ε
 #align simple_graph.far_from_triangle_free.mono SimpleGraph.farFromTriangleFree.mono
 
 /- warning: simple_graph.far_from_triangle_free.clique_finset_nonempty' -> SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {H : SimpleGraph.{u1} α} {ε : 𝕜}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u2} 𝕜 (Preorder.toHasLt.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) -> (Finset.Nonempty.{u1} (Finset.{u1} α) (SimpleGraph.cliqueFinset.{u1} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)) (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))
-but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {H : SimpleGraph.{u2} α} {ε : 𝕜}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b))))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))))) -> (Finset.Nonempty.{u2} (Finset.{u2} α) (SimpleGraph.cliqueFinset.{u2} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)) (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.clique_finset_nonempty' SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty'ₓ'. -/
 theorem FarFromTriangleFree.cliqueFinset_nonempty' (hH : H ≤ G) (hG : G.FarFromTriangleFree ε)
     (hcard : (G.edgeFinset.card - H.edgeFinset.card : 𝕜) < ε * (card α ^ 2 : ℕ)) :
Diff
@@ -53,7 +53,7 @@ def FarFromTriangleFree (G : SimpleGraph α) (ε : 𝕜) : Prop :=
 
 /- warning: simple_graph.far_from_triangle_free_iff -> SimpleGraph.farFromTriangleFree_iff is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toHasLe.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
 but is expected to have type
   forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free_iff SimpleGraph.farFromTriangleFree_iffₓ'. -/
@@ -66,7 +66,7 @@ theorem farFromTriangleFree_iff :
 
 /- warning: simple_graph.far_from_triangle_free.le_card_sub_card -> SimpleGraph.farFromTriangleFree.le_card_sub_card is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toHasLe.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
 but is expected to have type
   forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_cardₓ'. -/
@@ -75,7 +75,7 @@ alias far_from_triangle_free_iff ↔ far_from_triangle_free.le_card_sub_card _
 
 /- warning: simple_graph.far_from_triangle_free.mono -> SimpleGraph.farFromTriangleFree.mono is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜} {δ : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) δ ε) -> (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G δ)
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜} {δ : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LE.le.{u2} 𝕜 (Preorder.toHasLe.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) δ ε) -> (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G δ)
 but is expected to have type
   forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜} {δ : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) δ ε) -> (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G δ)
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.mono SimpleGraph.farFromTriangleFree.monoₓ'. -/
@@ -86,7 +86,7 @@ theorem farFromTriangleFree.mono (hε : G.FarFromTriangleFree ε) (h : δ ≤ ε
 
 /- warning: simple_graph.far_from_triangle_free.clique_finset_nonempty' -> SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty' is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {H : SimpleGraph.{u1} α} {ε : 𝕜}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) -> (Finset.Nonempty.{u1} (Finset.{u1} α) (SimpleGraph.cliqueFinset.{u1} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)) (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {H : SimpleGraph.{u1} α} {ε : 𝕜}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u2} 𝕜 (Preorder.toHasLt.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) -> (Finset.Nonempty.{u1} (Finset.{u1} α) (SimpleGraph.cliqueFinset.{u1} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)) (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
   forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {H : SimpleGraph.{u2} α} {ε : 𝕜}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b))))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))))) -> (Finset.Nonempty.{u2} (Finset.{u2} α) (SimpleGraph.cliqueFinset.{u2} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)) (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.clique_finset_nonempty' SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty'ₓ'. -/
@@ -101,7 +101,7 @@ variable [Nonempty α]
 
 /- warning: simple_graph.far_from_triangle_free.nonpos -> SimpleGraph.FarFromTriangleFree.nonpos is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u1} α], (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (SimpleGraph.CliqueFree.{u1} α G (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) ε (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))))))
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u1} α], (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (SimpleGraph.CliqueFree.{u1} α G (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toHasLe.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) ε (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))))))
 but is expected to have type
   forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u2} α], (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (SimpleGraph.CliqueFree.{u2} α G (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) ε (OfNat.ofNat.{u1} 𝕜 0 (Zero.toOfNat0.{u1} 𝕜 (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.nonpos SimpleGraph.FarFromTriangleFree.nonposₓ'. -/
@@ -114,7 +114,7 @@ theorem FarFromTriangleFree.nonpos (h₀ : G.FarFromTriangleFree ε) (h₁ : G.C
 
 /- warning: simple_graph.clique_free.not_far_from_triangle_free -> SimpleGraph.CliqueFree.not_farFromTriangleFree is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u1} α], (SimpleGraph.CliqueFree.{u1} α G (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))))) ε) -> (Not (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε))
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u1} α], (SimpleGraph.CliqueFree.{u1} α G (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LT.lt.{u2} 𝕜 (Preorder.toHasLt.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))))) ε) -> (Not (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε))
 but is expected to have type
   forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u2} α], (SimpleGraph.CliqueFree.{u2} α G (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (OfNat.ofNat.{u1} 𝕜 0 (Zero.toOfNat0.{u1} 𝕜 (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))))) ε) -> (Not (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε))
 Case conversion may be inaccurate. Consider using '#align simple_graph.clique_free.not_far_from_triangle_free SimpleGraph.CliqueFree.not_farFromTriangleFreeₓ'. -/
@@ -124,7 +124,7 @@ theorem CliqueFree.not_farFromTriangleFree (hG : G.CliqueFree 3) (hε : 0 < ε)
 
 /- warning: simple_graph.far_from_triangle_free.not_clique_free -> SimpleGraph.FarFromTriangleFree.not_cliqueFree is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u1} α], (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))))) ε) -> (Not (SimpleGraph.CliqueFree.{u1} α G (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u1} α], (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u2} 𝕜 (Preorder.toHasLt.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))))) ε) -> (Not (SimpleGraph.CliqueFree.{u1} α G (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
   forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u2} α], (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (OfNat.ofNat.{u1} 𝕜 0 (Zero.toOfNat0.{u1} 𝕜 (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))))) ε) -> (Not (SimpleGraph.CliqueFree.{u2} α G (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.not_clique_free SimpleGraph.FarFromTriangleFree.not_cliqueFreeₓ'. -/
@@ -134,7 +134,7 @@ theorem FarFromTriangleFree.not_cliqueFree (hG : G.FarFromTriangleFree ε) (hε
 
 /- warning: simple_graph.far_from_triangle_free.clique_finset_nonempty -> SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u1} α], (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))))) ε) -> (Finset.Nonempty.{u1} (Finset.{u1} α) (SimpleGraph.cliqueFinset.{u1} α G _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)) (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u1} α], (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u2} 𝕜 (Preorder.toHasLt.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))))) ε) -> (Finset.Nonempty.{u1} (Finset.{u1} α) (SimpleGraph.cliqueFinset.{u1} α G _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)) (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
   forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u2} α], (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (OfNat.ofNat.{u1} 𝕜 0 (Zero.toOfNat0.{u1} 𝕜 (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))))) ε) -> (Finset.Nonempty.{u2} (Finset.{u2} α) (SimpleGraph.cliqueFinset.{u2} α G _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)) (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.clique_finset_nonempty SimpleGraph.FarFromTriangleFree.cliqueFinset_nonemptyₓ'. -/
Diff
@@ -55,7 +55,7 @@ def FarFromTriangleFree (G : SimpleGraph α) (ε : 𝕜) : Prop :=
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
 but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free_iff SimpleGraph.farFromTriangleFree_iffₓ'. -/
 theorem farFromTriangleFree_iff :
     G.FarFromTriangleFree ε ↔
@@ -68,7 +68,7 @@ theorem farFromTriangleFree_iff :
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
 but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_cardₓ'. -/
 alias far_from_triangle_free_iff ↔ far_from_triangle_free.le_card_sub_card _
 #align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_card
@@ -88,7 +88,7 @@ theorem farFromTriangleFree.mono (hε : G.FarFromTriangleFree ε) (h : δ ≤ ε
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {H : SimpleGraph.{u1} α} {ε : 𝕜}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) -> (Finset.Nonempty.{u1} (Finset.{u1} α) (SimpleGraph.cliqueFinset.{u1} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)) (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {H : SimpleGraph.{u2} α} {ε : 𝕜}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b))))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))))) -> (Finset.Nonempty.{u2} (Finset.{u2} α) (SimpleGraph.cliqueFinset.{u2} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)) (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {H : SimpleGraph.{u2} α} {ε : 𝕜}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b))))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (Semiring.toNatCast.{u1} 𝕜 (DivisionSemiring.toSemiring.{u1} 𝕜 (Semifield.toDivisionSemiring.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))))) -> (Finset.Nonempty.{u2} (Finset.{u2} α) (SimpleGraph.cliqueFinset.{u2} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)) (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.clique_finset_nonempty' SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty'ₓ'. -/
 theorem FarFromTriangleFree.cliqueFinset_nonempty' (hH : H ≤ G) (hG : G.FarFromTriangleFree ε)
     (hcard : (G.edgeFinset.card - H.edgeFinset.card : 𝕜) < ε * (card α ^ 2 : ℕ)) :
Diff
@@ -53,7 +53,7 @@ def FarFromTriangleFree (G : SimpleGraph α) (ε : 𝕜) : Prop :=
 
 /- warning: simple_graph.far_from_triangle_free_iff -> SimpleGraph.farFromTriangleFree_iff is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
 but is expected to have type
   forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free_iff SimpleGraph.farFromTriangleFree_iffₓ'. -/
@@ -66,7 +66,7 @@ theorem farFromTriangleFree_iff :
 
 /- warning: simple_graph.far_from_triangle_free.le_card_sub_card -> SimpleGraph.farFromTriangleFree.le_card_sub_card is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
 but is expected to have type
   forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_cardₓ'. -/
@@ -86,7 +86,7 @@ theorem farFromTriangleFree.mono (hε : G.FarFromTriangleFree ε) (h : δ ≤ ε
 
 /- warning: simple_graph.far_from_triangle_free.clique_finset_nonempty' -> SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty' is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {H : SimpleGraph.{u1} α} {ε : 𝕜}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) -> (Finset.Nonempty.{u1} (Finset.{u1} α) (SimpleGraph.cliqueFinset.{u1} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)) (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {H : SimpleGraph.{u1} α} {ε : 𝕜}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜 (Ring.toAddCommGroupWithOne.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) -> (Finset.Nonempty.{u1} (Finset.{u1} α) (SimpleGraph.cliqueFinset.{u1} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)) (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
   forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {H : SimpleGraph.{u2} α} {ε : 𝕜}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b))))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))))) -> (Finset.Nonempty.{u2} (Finset.{u2} α) (SimpleGraph.cliqueFinset.{u2} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)) (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.clique_finset_nonempty' SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty'ₓ'. -/
Diff
@@ -55,7 +55,7 @@ def FarFromTriangleFree (G : SimpleGraph α) (ε : 𝕜) : Prop :=
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
 but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7780 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7782 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7780 x._@.Mathlib.Data.Fintype.Basic._hyg.7782) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7780 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7782 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7780 x._@.Mathlib.Data.Fintype.Basic._hyg.7782) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free_iff SimpleGraph.farFromTriangleFree_iffₓ'. -/
 theorem farFromTriangleFree_iff :
     G.FarFromTriangleFree ε ↔
@@ -68,7 +68,7 @@ theorem farFromTriangleFree_iff :
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
 but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7780 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7782 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7780 x._@.Mathlib.Data.Fintype.Basic._hyg.7782) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7780 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7782 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7780 x._@.Mathlib.Data.Fintype.Basic._hyg.7782) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_cardₓ'. -/
 alias far_from_triangle_free_iff ↔ far_from_triangle_free.le_card_sub_card _
 #align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_card
@@ -88,7 +88,7 @@ theorem farFromTriangleFree.mono (hε : G.FarFromTriangleFree ε) (h : δ ≤ ε
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {H : SimpleGraph.{u1} α} {ε : 𝕜}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) -> (Finset.Nonempty.{u1} (Finset.{u1} α) (SimpleGraph.cliqueFinset.{u1} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)) (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {H : SimpleGraph.{u2} α} {ε : 𝕜}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7780 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7782 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7780 x._@.Mathlib.Data.Fintype.Basic._hyg.7782) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7780 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7782 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7780 x._@.Mathlib.Data.Fintype.Basic._hyg.7782) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b))))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))))) -> (Finset.Nonempty.{u2} (Finset.{u2} α) (SimpleGraph.cliqueFinset.{u2} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)) (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {H : SimpleGraph.{u2} α} {ε : 𝕜}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Sym2.instRelDecidable'.{u2} α (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b))))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))))) -> (Finset.Nonempty.{u2} (Finset.{u2} α) (SimpleGraph.cliqueFinset.{u2} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)) (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.clique_finset_nonempty' SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty'ₓ'. -/
 theorem FarFromTriangleFree.cliqueFinset_nonempty' (hH : H ≤ G) (hG : G.FarFromTriangleFree ε)
     (hcard : (G.edgeFinset.card - H.edgeFinset.card : 𝕜) < ε * (card α ^ 2 : ℕ)) :
Diff
@@ -55,7 +55,7 @@ def FarFromTriangleFree (G : SimpleGraph α) (ε : 𝕜) : Prop :=
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
 but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7771 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7773 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7771 x._@.Mathlib.Data.Fintype.Basic._hyg.7773) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7771 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7773 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7771 x._@.Mathlib.Data.Fintype.Basic._hyg.7773) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7780 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7782 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7780 x._@.Mathlib.Data.Fintype.Basic._hyg.7782) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7780 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7782 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7780 x._@.Mathlib.Data.Fintype.Basic._hyg.7782) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free_iff SimpleGraph.farFromTriangleFree_iffₓ'. -/
 theorem farFromTriangleFree_iff :
     G.FarFromTriangleFree ε ↔
@@ -68,7 +68,7 @@ theorem farFromTriangleFree_iff :
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
 but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7771 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7773 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7771 x._@.Mathlib.Data.Fintype.Basic._hyg.7773) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7771 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7773 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7771 x._@.Mathlib.Data.Fintype.Basic._hyg.7773) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7780 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7782 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7780 x._@.Mathlib.Data.Fintype.Basic._hyg.7782) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7780 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7782 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7780 x._@.Mathlib.Data.Fintype.Basic._hyg.7782) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_cardₓ'. -/
 alias far_from_triangle_free_iff ↔ far_from_triangle_free.le_card_sub_card _
 #align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_card
@@ -88,7 +88,7 @@ theorem farFromTriangleFree.mono (hε : G.FarFromTriangleFree ε) (h : δ ≤ ε
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {H : SimpleGraph.{u1} α} {ε : 𝕜}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) -> (Finset.Nonempty.{u1} (Finset.{u1} α) (SimpleGraph.cliqueFinset.{u1} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)) (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {H : SimpleGraph.{u2} α} {ε : 𝕜}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7771 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7773 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7771 x._@.Mathlib.Data.Fintype.Basic._hyg.7773) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7771 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7773 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7771 x._@.Mathlib.Data.Fintype.Basic._hyg.7773) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b))))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))))) -> (Finset.Nonempty.{u2} (Finset.{u2} α) (SimpleGraph.cliqueFinset.{u2} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)) (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {H : SimpleGraph.{u2} α} {ε : 𝕜}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7780 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7782 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7780 x._@.Mathlib.Data.Fintype.Basic._hyg.7782) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7780 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7782 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7780 x._@.Mathlib.Data.Fintype.Basic._hyg.7782) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b))))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))))) -> (Finset.Nonempty.{u2} (Finset.{u2} α) (SimpleGraph.cliqueFinset.{u2} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)) (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.clique_finset_nonempty' SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty'ₓ'. -/
 theorem FarFromTriangleFree.cliqueFinset_nonempty' (hH : H ≤ G) (hG : G.FarFromTriangleFree ε)
     (hcard : (G.edgeFinset.card - H.edgeFinset.card : 𝕜) < ε * (card α ^ 2 : ℕ)) :
Diff
@@ -55,7 +55,7 @@ def FarFromTriangleFree (G : SimpleGraph α) (ε : 𝕜) : Prop :=
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
 but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7741 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7743 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7741 x._@.Mathlib.Data.Fintype.Basic._hyg.7743) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7741 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7743 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7741 x._@.Mathlib.Data.Fintype.Basic._hyg.7743) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7771 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7773 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7771 x._@.Mathlib.Data.Fintype.Basic._hyg.7773) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7771 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7773 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7771 x._@.Mathlib.Data.Fintype.Basic._hyg.7773) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free_iff SimpleGraph.farFromTriangleFree_iffₓ'. -/
 theorem farFromTriangleFree_iff :
     G.FarFromTriangleFree ε ↔
@@ -68,7 +68,7 @@ theorem farFromTriangleFree_iff :
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
 but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7741 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7743 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7741 x._@.Mathlib.Data.Fintype.Basic._hyg.7743) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7741 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7743 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7741 x._@.Mathlib.Data.Fintype.Basic._hyg.7743) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7771 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7773 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7771 x._@.Mathlib.Data.Fintype.Basic._hyg.7773) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7771 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7773 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7771 x._@.Mathlib.Data.Fintype.Basic._hyg.7773) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_cardₓ'. -/
 alias far_from_triangle_free_iff ↔ far_from_triangle_free.le_card_sub_card _
 #align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_card
@@ -88,7 +88,7 @@ theorem farFromTriangleFree.mono (hε : G.FarFromTriangleFree ε) (h : δ ≤ ε
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {H : SimpleGraph.{u1} α} {ε : 𝕜}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) -> (Finset.Nonempty.{u1} (Finset.{u1} α) (SimpleGraph.cliqueFinset.{u1} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)) (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {H : SimpleGraph.{u2} α} {ε : 𝕜}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7741 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7743 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7741 x._@.Mathlib.Data.Fintype.Basic._hyg.7743) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7741 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7743 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7741 x._@.Mathlib.Data.Fintype.Basic._hyg.7743) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b))))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))))) -> (Finset.Nonempty.{u2} (Finset.{u2} α) (SimpleGraph.cliqueFinset.{u2} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)) (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {H : SimpleGraph.{u2} α} {ε : 𝕜}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7771 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7773 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7771 x._@.Mathlib.Data.Fintype.Basic._hyg.7773) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7771 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7773 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7771 x._@.Mathlib.Data.Fintype.Basic._hyg.7773) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b))))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))))) -> (Finset.Nonempty.{u2} (Finset.{u2} α) (SimpleGraph.cliqueFinset.{u2} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)) (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.clique_finset_nonempty' SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty'ₓ'. -/
 theorem FarFromTriangleFree.cliqueFinset_nonempty' (hH : H ≤ G) (hG : G.FarFromTriangleFree ε)
     (hcard : (G.edgeFinset.card - H.edgeFinset.card : 𝕜) < ε * (card α ^ 2 : ℕ)) :
Diff
@@ -55,7 +55,7 @@ def FarFromTriangleFree (G : SimpleGraph α) (ε : 𝕜) : Prop :=
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
 but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7698 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7700 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7698 x._@.Mathlib.Data.Fintype.Basic._hyg.7700) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7698 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7700 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7698 x._@.Mathlib.Data.Fintype.Basic._hyg.7700) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7741 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7743 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7741 x._@.Mathlib.Data.Fintype.Basic._hyg.7743) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7741 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7743 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7741 x._@.Mathlib.Data.Fintype.Basic._hyg.7743) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free_iff SimpleGraph.farFromTriangleFree_iffₓ'. -/
 theorem farFromTriangleFree_iff :
     G.FarFromTriangleFree ε ↔
@@ -68,7 +68,7 @@ theorem farFromTriangleFree_iff :
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
 but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7698 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7700 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7698 x._@.Mathlib.Data.Fintype.Basic._hyg.7700) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7698 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7700 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7698 x._@.Mathlib.Data.Fintype.Basic._hyg.7700) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7741 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7743 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7741 x._@.Mathlib.Data.Fintype.Basic._hyg.7743) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7741 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7743 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7741 x._@.Mathlib.Data.Fintype.Basic._hyg.7743) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_cardₓ'. -/
 alias far_from_triangle_free_iff ↔ far_from_triangle_free.le_card_sub_card _
 #align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_card
@@ -88,7 +88,7 @@ theorem farFromTriangleFree.mono (hε : G.FarFromTriangleFree ε) (h : δ ≤ ε
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {H : SimpleGraph.{u1} α} {ε : 𝕜}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) -> (Finset.Nonempty.{u1} (Finset.{u1} α) (SimpleGraph.cliqueFinset.{u1} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)) (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {H : SimpleGraph.{u2} α} {ε : 𝕜}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7698 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7700 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7698 x._@.Mathlib.Data.Fintype.Basic._hyg.7700) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7698 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7700 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7698 x._@.Mathlib.Data.Fintype.Basic._hyg.7700) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b))))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))))) -> (Finset.Nonempty.{u2} (Finset.{u2} α) (SimpleGraph.cliqueFinset.{u2} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)) (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {H : SimpleGraph.{u2} α} {ε : 𝕜}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7741 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7743 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7741 x._@.Mathlib.Data.Fintype.Basic._hyg.7743) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7741 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7743 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7741 x._@.Mathlib.Data.Fintype.Basic._hyg.7743) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b))))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))))) -> (Finset.Nonempty.{u2} (Finset.{u2} α) (SimpleGraph.cliqueFinset.{u2} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)) (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.clique_finset_nonempty' SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty'ₓ'. -/
 theorem FarFromTriangleFree.cliqueFinset_nonempty' (hH : H ≤ G) (hG : G.FarFromTriangleFree ε)
     (hcard : (G.edgeFinset.card - H.edgeFinset.card : 𝕜) < ε * (card α ^ 2 : ℕ)) :
Diff
@@ -55,7 +55,7 @@ def FarFromTriangleFree (G : SimpleGraph α) (ε : 𝕜) : Prop :=
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
 but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7705 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7707 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7705 x._@.Mathlib.Data.Fintype.Basic._hyg.7707) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7705 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7707 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7705 x._@.Mathlib.Data.Fintype.Basic._hyg.7707) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7698 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7700 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7698 x._@.Mathlib.Data.Fintype.Basic._hyg.7700) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7698 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7700 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7698 x._@.Mathlib.Data.Fintype.Basic._hyg.7700) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free_iff SimpleGraph.farFromTriangleFree_iffₓ'. -/
 theorem farFromTriangleFree_iff :
     G.FarFromTriangleFree ε ↔
@@ -68,7 +68,7 @@ theorem farFromTriangleFree_iff :
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
 but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7705 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7707 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7705 x._@.Mathlib.Data.Fintype.Basic._hyg.7707) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7705 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7707 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7705 x._@.Mathlib.Data.Fintype.Basic._hyg.7707) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7698 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7700 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7698 x._@.Mathlib.Data.Fintype.Basic._hyg.7700) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7698 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7700 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7698 x._@.Mathlib.Data.Fintype.Basic._hyg.7700) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_cardₓ'. -/
 alias far_from_triangle_free_iff ↔ far_from_triangle_free.le_card_sub_card _
 #align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_card
@@ -88,7 +88,7 @@ theorem farFromTriangleFree.mono (hε : G.FarFromTriangleFree ε) (h : δ ≤ ε
 lean 3 declaration is
   forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {H : SimpleGraph.{u1} α} {ε : 𝕜}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) -> (Finset.Nonempty.{u1} (Finset.{u1} α) (SimpleGraph.cliqueFinset.{u1} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)) (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
-  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {H : SimpleGraph.{u2} α} {ε : 𝕜}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7705 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7707 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7705 x._@.Mathlib.Data.Fintype.Basic._hyg.7707) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7705 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7707 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7705 x._@.Mathlib.Data.Fintype.Basic._hyg.7707) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b))))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))))) -> (Finset.Nonempty.{u2} (Finset.{u2} α) (SimpleGraph.cliqueFinset.{u2} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)) (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {H : SimpleGraph.{u2} α} {ε : 𝕜}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7698 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7700 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7698 x._@.Mathlib.Data.Fintype.Basic._hyg.7700) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7698 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7700 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7698 x._@.Mathlib.Data.Fintype.Basic._hyg.7700) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b))))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))))) -> (Finset.Nonempty.{u2} (Finset.{u2} α) (SimpleGraph.cliqueFinset.{u2} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)) (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.clique_finset_nonempty' SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty'ₓ'. -/
 theorem FarFromTriangleFree.cliqueFinset_nonempty' (hH : H ≤ G) (hG : G.FarFromTriangleFree ε)
     (hcard : (G.edgeFinset.card - H.edgeFinset.card : 𝕜) < ε * (card α ^ 2 : ℕ)) :
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies, Bhavik Mehta
 
 ! This file was ported from Lean 3 source module combinatorics.simple_graph.triangle.basic
-! leanprover-community/mathlib commit cd7f0626a0b04be1dda223a26123313514a55fb4
+! leanprover-community/mathlib commit ee05e9ce1322178f0c12004eb93c00d2c8c00ed2
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -13,6 +13,9 @@ import Mathbin.Combinatorics.SimpleGraph.Clique
 /-!
 # Triangles in graphs
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 A *triangle* in a simple graph is a `3`-clique, namely a set of three vertices that are
 pairwise adjacent.
 
Diff
@@ -40,12 +40,20 @@ namespace SimpleGraph
 variable {α 𝕜 : Type _} [Fintype α] [LinearOrderedField 𝕜] {G H : SimpleGraph α} {ε δ : 𝕜} {n : ℕ}
   {s : Finset α}
 
+#print SimpleGraph.FarFromTriangleFree /-
 /-- A simple graph is *`ε`-triangle-free far* if one must remove at least `ε * (card α)^2` edges to
 make it triangle-free. -/
 def FarFromTriangleFree (G : SimpleGraph α) (ε : 𝕜) : Prop :=
   (G.DeleteFar fun H => H.CliqueFree 3) <| ε * (card α ^ 2 : ℕ)
 #align simple_graph.far_from_triangle_free SimpleGraph.FarFromTriangleFree
+-/
 
+/- warning: simple_graph.far_from_triangle_free_iff -> SimpleGraph.farFromTriangleFree_iff is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
+but is expected to have type
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, Iff (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7705 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7707 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7705 x._@.Mathlib.Data.Fintype.Basic._hyg.7707) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7705 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7707 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7705 x._@.Mathlib.Data.Fintype.Basic._hyg.7707) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
+Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free_iff SimpleGraph.farFromTriangleFree_iffₓ'. -/
 theorem farFromTriangleFree_iff :
     G.FarFromTriangleFree ε ↔
       ∀ ⦃H⦄,
@@ -53,14 +61,32 @@ theorem farFromTriangleFree_iff :
   deleteFar_iff
 #align simple_graph.far_from_triangle_free_iff SimpleGraph.farFromTriangleFree_iff
 
+/- warning: simple_graph.far_from_triangle_free.le_card_sub_card -> SimpleGraph.farFromTriangleFree.le_card_sub_card is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u1} α}}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.CliqueFree.{u1} α H (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)))))))))
+but is expected to have type
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (forall {{H : SimpleGraph.{u2} α}}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.CliqueFree.{u2} α H (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7705 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7707 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7705 x._@.Mathlib.Data.Fintype.Basic._hyg.7707) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7705 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7707 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7705 x._@.Mathlib.Data.Fintype.Basic._hyg.7707) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)))))))))
+Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_cardₓ'. -/
 alias far_from_triangle_free_iff ↔ far_from_triangle_free.le_card_sub_card _
-#align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.FarFromTriangleFree.le_card_sub_card
-
-theorem FarFromTriangleFree.mono (hε : G.FarFromTriangleFree ε) (h : δ ≤ ε) :
+#align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_card
+
+/- warning: simple_graph.far_from_triangle_free.mono -> SimpleGraph.farFromTriangleFree.mono is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜} {δ : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) δ ε) -> (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G δ)
+but is expected to have type
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜} {δ : 𝕜}, (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) δ ε) -> (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G δ)
+Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.mono SimpleGraph.farFromTriangleFree.monoₓ'. -/
+theorem farFromTriangleFree.mono (hε : G.FarFromTriangleFree ε) (h : δ ≤ ε) :
     G.FarFromTriangleFree δ :=
   hε.mono <| mul_le_mul_of_nonneg_right h <| cast_nonneg _
-#align simple_graph.far_from_triangle_free.mono SimpleGraph.FarFromTriangleFree.mono
-
+#align simple_graph.far_from_triangle_free.mono SimpleGraph.farFromTriangleFree.mono
+
+/- warning: simple_graph.far_from_triangle_free.clique_finset_nonempty' -> SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty' is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {H : SimpleGraph.{u1} α} {ε : 𝕜}, (LE.le.{u1} (SimpleGraph.{u1} α) (SimpleGraph.hasLe.{u1} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (HSub.hSub.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHSub.{u2} 𝕜 (SubNegMonoid.toHasSub.{u2} 𝕜 (AddGroup.toSubNegMonoid.{u2} 𝕜 (AddGroupWithOne.toAddGroup.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α G (SimpleGraph.fintypeEdgeSet.{u1} α G (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (Finset.card.{u1} (Sym2.{u1} α) (SimpleGraph.edgeFinset.{u1} α H (SimpleGraph.fintypeEdgeSet.{u1} α H (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b))))))) (HMul.hMul.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHMul.{u2} 𝕜 (Distrib.toHasMul.{u2} 𝕜 (Ring.toDistrib.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))) ε ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat 𝕜 (HasLiftT.mk.{1, succ u2} Nat 𝕜 (CoeTCₓ.coe.{1, succ u2} Nat 𝕜 (Nat.castCoe.{u2} 𝕜 (AddMonoidWithOne.toNatCast.{u2} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜 (NonAssocRing.toAddGroupWithOne.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2)))))))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (Fintype.card.{u1} α _inst_1) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) -> (Finset.Nonempty.{u1} (Finset.{u1} α) (SimpleGraph.cliqueFinset.{u1} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α H a b)) (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))
+but is expected to have type
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {H : SimpleGraph.{u2} α} {ε : 𝕜}, (LE.le.{u2} (SimpleGraph.{u2} α) (SimpleGraph.instLESimpleGraph.{u2} α) H G) -> (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (HSub.hSub.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHSub.{u1} 𝕜 (Ring.toSub.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α G (SimpleGraph.fintypeEdgeSet.{u2} α G (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7705 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7707 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7705 x._@.Mathlib.Data.Fintype.Basic._hyg.7707) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)))))) (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (Finset.card.{u2} (Sym2.{u2} α) (SimpleGraph.edgeFinset.{u2} α H (SimpleGraph.fintypeEdgeSet.{u2} α H (Quotient.fintype.{u2} (Prod.{u2, u2} α α) (instFintypeProd.{u2, u2} α α _inst_1 _inst_1) (Sym2.Rel.setoid.{u2} α) (fun (a : Prod.{u2, u2} α α) (b : Prod.{u2, u2} α α) => Classical.propDecidable ((fun (x._@.Mathlib.Data.Fintype.Basic._hyg.7705 : Prod.{u2, u2} α α) (x._@.Mathlib.Data.Fintype.Basic._hyg.7707 : Prod.{u2, u2} α α) => HasEquiv.Equiv.{succ u2, 0} (Prod.{u2, u2} α α) (instHasEquiv.{succ u2} (Prod.{u2, u2} α α) (Sym2.Rel.setoid.{u2} α)) x._@.Mathlib.Data.Fintype.Basic._hyg.7705 x._@.Mathlib.Data.Fintype.Basic._hyg.7707) a b))) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b))))))) (HMul.hMul.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHMul.{u1} 𝕜 (NonUnitalNonAssocRing.toMul.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))))) ε (Nat.cast.{u1} 𝕜 (NonAssocRing.toNatCast.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_2))))) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (Fintype.card.{u2} α _inst_1) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))))) -> (Finset.Nonempty.{u2} (Finset.{u2} α) (SimpleGraph.cliqueFinset.{u2} α H _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α H a b)) (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
+Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.clique_finset_nonempty' SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty'ₓ'. -/
 theorem FarFromTriangleFree.cliqueFinset_nonempty' (hH : H ≤ G) (hG : G.FarFromTriangleFree ε)
     (hcard : (G.edgeFinset.card - H.edgeFinset.card : 𝕜) < ε * (card α ^ 2 : ℕ)) :
     (H.cliqueFinset 3).Nonempty :=
@@ -70,6 +96,12 @@ theorem FarFromTriangleFree.cliqueFinset_nonempty' (hH : H ≤ G) (hG : G.FarFro
 
 variable [Nonempty α]
 
+/- warning: simple_graph.far_from_triangle_free.nonpos -> SimpleGraph.FarFromTriangleFree.nonpos is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u1} α], (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (SimpleGraph.CliqueFree.{u1} α G (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) ε (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))))))
+but is expected to have type
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u2} α], (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (SimpleGraph.CliqueFree.{u2} α G (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) ε (OfNat.ofNat.{u1} 𝕜 0 (Zero.toOfNat0.{u1} 𝕜 (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))))))
+Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.nonpos SimpleGraph.FarFromTriangleFree.nonposₓ'. -/
 theorem FarFromTriangleFree.nonpos (h₀ : G.FarFromTriangleFree ε) (h₁ : G.CliqueFree 3) : ε ≤ 0 :=
   by
   have := h₀ (empty_subset _)
@@ -77,14 +109,32 @@ theorem FarFromTriangleFree.nonpos (h₀ : G.FarFromTriangleFree ε) (h₁ : G.C
   exact nonpos_of_mul_nonpos_left (this h₁) (cast_pos.2 <| sq_pos_of_pos Fintype.card_pos)
 #align simple_graph.far_from_triangle_free.nonpos SimpleGraph.FarFromTriangleFree.nonpos
 
+/- warning: simple_graph.clique_free.not_far_from_triangle_free -> SimpleGraph.CliqueFree.not_farFromTriangleFree is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u1} α], (SimpleGraph.CliqueFree.{u1} α G (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))))) ε) -> (Not (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε))
+but is expected to have type
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u2} α], (SimpleGraph.CliqueFree.{u2} α G (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (OfNat.ofNat.{u1} 𝕜 0 (Zero.toOfNat0.{u1} 𝕜 (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))))) ε) -> (Not (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε))
+Case conversion may be inaccurate. Consider using '#align simple_graph.clique_free.not_far_from_triangle_free SimpleGraph.CliqueFree.not_farFromTriangleFreeₓ'. -/
 theorem CliqueFree.not_farFromTriangleFree (hG : G.CliqueFree 3) (hε : 0 < ε) :
     ¬G.FarFromTriangleFree ε := fun h => (h.nonpos hG).not_lt hε
 #align simple_graph.clique_free.not_far_from_triangle_free SimpleGraph.CliqueFree.not_farFromTriangleFree
 
+/- warning: simple_graph.far_from_triangle_free.not_clique_free -> SimpleGraph.FarFromTriangleFree.not_cliqueFree is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u1} α], (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))))) ε) -> (Not (SimpleGraph.CliqueFree.{u1} α G (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))
+but is expected to have type
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u2} α], (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (OfNat.ofNat.{u1} 𝕜 0 (Zero.toOfNat0.{u1} 𝕜 (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))))) ε) -> (Not (SimpleGraph.CliqueFree.{u2} α G (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
+Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.not_clique_free SimpleGraph.FarFromTriangleFree.not_cliqueFreeₓ'. -/
 theorem FarFromTriangleFree.not_cliqueFree (hG : G.FarFromTriangleFree ε) (hε : 0 < ε) :
     ¬G.CliqueFree 3 := fun h => (hG.nonpos h).not_lt hε
 #align simple_graph.far_from_triangle_free.not_clique_free SimpleGraph.FarFromTriangleFree.not_cliqueFree
 
+/- warning: simple_graph.far_from_triangle_free.clique_finset_nonempty -> SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {𝕜 : Type.{u2}} [_inst_1 : Fintype.{u1} α] [_inst_2 : LinearOrderedField.{u2} 𝕜] {G : SimpleGraph.{u1} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u1} α], (SimpleGraph.FarFromTriangleFree.{u1, u2} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u2} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_2))))))) (OfNat.ofNat.{u2} 𝕜 0 (OfNat.mk.{u2} 𝕜 0 (Zero.zero.{u2} 𝕜 (MulZeroClass.toHasZero.{u2} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u2} 𝕜 (Ring.toNonAssocRing.{u2} 𝕜 (DivisionRing.toRing.{u2} 𝕜 (Field.toDivisionRing.{u2} 𝕜 (LinearOrderedField.toField.{u2} 𝕜 _inst_2))))))))))) ε) -> (Finset.Nonempty.{u1} (Finset.{u1} α) (SimpleGraph.cliqueFinset.{u1} α G _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u1} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u1} α G a b)) (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))
+but is expected to have type
+  forall {α : Type.{u2}} {𝕜 : Type.{u1}} [_inst_1 : Fintype.{u2} α] [_inst_2 : LinearOrderedField.{u1} 𝕜] {G : SimpleGraph.{u2} α} {ε : 𝕜} [_inst_3 : Nonempty.{succ u2} α], (SimpleGraph.FarFromTriangleFree.{u2, u1} α 𝕜 _inst_1 _inst_2 G ε) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (StrictOrderedRing.toPartialOrder.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_2)))))) (OfNat.ofNat.{u1} 𝕜 0 (Zero.toOfNat0.{u1} 𝕜 (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 _inst_2))))))) ε) -> (Finset.Nonempty.{u2} (Finset.{u2} α) (SimpleGraph.cliqueFinset.{u2} α G _inst_1 (fun (a : α) (b : α) => Classical.propDecidable (Eq.{succ u2} α a b)) (fun (a : α) (b : α) => Classical.propDecidable (SimpleGraph.Adj.{u2} α G a b)) (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3))))
+Case conversion may be inaccurate. Consider using '#align simple_graph.far_from_triangle_free.clique_finset_nonempty SimpleGraph.FarFromTriangleFree.cliqueFinset_nonemptyₓ'. -/
 theorem FarFromTriangleFree.cliqueFinset_nonempty (hG : G.FarFromTriangleFree ε) (hε : 0 < ε) :
     (G.cliqueFinset 3).Nonempty :=
   nonempty_of_ne_empty <| G.cliqueFinset_eq_empty_iff.Not.2 <| hG.not_cliqueFree hε

Changes in mathlib4

mathlib3
mathlib4
chore: scope open Classical (#11199)

We remove all but one open Classicals, instead preferring to use open scoped Classical. The only real side-effect this led to is moving a couple declarations to use Exists.choose instead of Classical.choose.

The first few commits are explicitly labelled regex replaces for ease of review.

Diff
@@ -32,7 +32,7 @@ This module defines and proves properties about triangles in simple graphs.
 
 open Finset Fintype Nat
 
-open Classical
+open scoped Classical
 
 namespace SimpleGraph
 
chore(Tactic/GCongr): move @[gcongr] tags around (#9393)
  • Add import Mathlib.Tactic.GCongr.Core to Algebra/Order/Ring/Lemmas.
  • Move most @[gcongr] tags next to the lemmas.

See Zulip thread

Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com>

Diff
@@ -7,6 +7,7 @@ import Mathlib.Algebra.GroupPower.Order
 import Mathlib.Combinatorics.SimpleGraph.Clique
 import Mathlib.Data.Finset.Sym
 import Mathlib.Tactic.GCongr
+import Mathlib.Tactic.Positivity
 
 #align_import combinatorics.simple_graph.triangle.basic from "leanprover-community/mathlib"@"3365b20c2ffa7c35e47e5209b89ba9abdddf3ffe"
 
@@ -35,7 +36,7 @@ open Classical
 
 namespace SimpleGraph
 
-variable {α 𝕜 : Type*} [Fintype α] [LinearOrderedField 𝕜] {G H : SimpleGraph α} {ε δ : 𝕜} {n : ℕ}
+variable {α 𝕜 : Type*} [Fintype α] [LinearOrderedRing 𝕜] {G H : SimpleGraph α} {ε δ : 𝕜} {n : ℕ}
   {s : Finset α}
 
 /-- A simple graph is *`ε`-far from triangle-free* if one must remove at least
chore: Move positivity extensions (#10140)

The goal here is to have access to positivity earlier in the import hierarchy

Diff
@@ -3,6 +3,7 @@ Copyright (c) 2022 Yaël Dillies, Bhavik Mehta. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies, Bhavik Mehta
 -/
+import Mathlib.Algebra.GroupPower.Order
 import Mathlib.Combinatorics.SimpleGraph.Clique
 import Mathlib.Data.Finset.Sym
 import Mathlib.Tactic.GCongr
refactor: remove Sym2's global Prod setoid instance, use s(x, y) notation for unordered pairs (#8729)

The Sym2 type used a global setoid instance on α × α so that ⟦(x, y)⟧ could stand for an unordered pair using standard Quotient syntax. This commit refactors Sym2 to not use Quotient and instead use its own s(x, y) notation. One benefit to this is that this notation produces a term with type Sym2 rather than Quotient.

The Fintype instance for Sym2 is in Mathlib.Data.Finset.Sym. We switch from using the one for Quotient because it does not require DecidableEq.

Diff
@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies, Bhavik Mehta
 -/
 import Mathlib.Combinatorics.SimpleGraph.Clique
+import Mathlib.Data.Finset.Sym
 import Mathlib.Tactic.GCongr
 
 #align_import combinatorics.simple_graph.triangle.basic from "leanprover-community/mathlib"@"3365b20c2ffa7c35e47e5209b89ba9abdddf3ffe"
Diff
@@ -6,7 +6,7 @@ Authors: Yaël Dillies, Bhavik Mehta
 import Mathlib.Combinatorics.SimpleGraph.Clique
 import Mathlib.Tactic.GCongr
 
-#align_import combinatorics.simple_graph.triangle.basic from "leanprover-community/mathlib"@"cd7f0626a0b04be1dda223a26123313514a55fb4"
+#align_import combinatorics.simple_graph.triangle.basic from "leanprover-community/mathlib"@"3365b20c2ffa7c35e47e5209b89ba9abdddf3ffe"
 
 /-!
 # Triangles in graphs
@@ -58,7 +58,7 @@ theorem FarFromTriangleFree.cliqueFinset_nonempty' (hH : H ≤ G) (hG : G.FarFro
     (hcard : (G.edgeFinset.card - H.edgeFinset.card : 𝕜) < ε * (card α ^ 2 : ℕ)) :
     (H.cliqueFinset 3).Nonempty :=
   nonempty_of_ne_empty <|
-    H.cliqueFinset_eq_empty_iff.not.2 fun hH' => (hG.le_card_sub_card hH hH').not_lt hcard
+    cliqueFinset_eq_empty_iff.not.2 fun hH' => (hG.le_card_sub_card hH hH').not_lt hcard
 #align simple_graph.far_from_triangle_free.clique_finset_nonempty' SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty'
 
 variable [Nonempty α]
@@ -80,7 +80,7 @@ theorem FarFromTriangleFree.not_cliqueFree (hG : G.FarFromTriangleFree ε) (hε
 
 theorem FarFromTriangleFree.cliqueFinset_nonempty (hG : G.FarFromTriangleFree ε) (hε : 0 < ε) :
     (G.cliqueFinset 3).Nonempty :=
-  nonempty_of_ne_empty <| G.cliqueFinset_eq_empty_iff.not.2 <| hG.not_cliqueFree hε
+  nonempty_of_ne_empty <| cliqueFinset_eq_empty_iff.not.2 <| hG.not_cliqueFree hε
 #align simple_graph.far_from_triangle_free.clique_finset_nonempty SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty
 
 end SimpleGraph
feat: More simple simple graph lemmas (#7712)

A bunch of simple lemmas for simple graphs.

Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -42,8 +42,9 @@ def FarFromTriangleFree (G : SimpleGraph α) (ε : 𝕜) : Prop :=
   (G.DeleteFar fun H => H.CliqueFree 3) <| ε * (card α ^ 2 : ℕ)
 #align simple_graph.far_from_triangle_free SimpleGraph.FarFromTriangleFree
 
-theorem farFromTriangleFree_iff : G.FarFromTriangleFree ε ↔ ∀ ⦃H⦄, H ≤ G → H.CliqueFree 3 →
-    ε * (card α ^ 2 : ℕ) ≤ G.edgeFinset.card - H.edgeFinset.card := deleteFar_iff
+theorem farFromTriangleFree_iff :
+    G.FarFromTriangleFree ε ↔ ∀ ⦃H : SimpleGraph α⦄, [DecidableRel H.Adj] → H ≤ G → H.CliqueFree 3 →
+      ε * (card α ^ 2 : ℕ) ≤ G.edgeFinset.card - H.edgeFinset.card := deleteFar_iff
 #align simple_graph.far_from_triangle_free_iff SimpleGraph.farFromTriangleFree_iff
 
 alias ⟨farFromTriangleFree.le_card_sub_card, _⟩ := farFromTriangleFree_iff
chore: exactly 4 spaces in theorems (#7328)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -43,7 +43,7 @@ def FarFromTriangleFree (G : SimpleGraph α) (ε : 𝕜) : Prop :=
 #align simple_graph.far_from_triangle_free SimpleGraph.FarFromTriangleFree
 
 theorem farFromTriangleFree_iff : G.FarFromTriangleFree ε ↔ ∀ ⦃H⦄, H ≤ G → H.CliqueFree 3 →
-  ε * (card α ^ 2 : ℕ) ≤ G.edgeFinset.card - H.edgeFinset.card := deleteFar_iff
+    ε * (card α ^ 2 : ℕ) ≤ G.edgeFinset.card - H.edgeFinset.card := deleteFar_iff
 #align simple_graph.far_from_triangle_free_iff SimpleGraph.farFromTriangleFree_iff
 
 alias ⟨farFromTriangleFree.le_card_sub_card, _⟩ := farFromTriangleFree_iff
docs: Better explain FarFromTriangleFree (#6696)
Diff
@@ -18,14 +18,12 @@ This module defines and proves properties about triangles in simple graphs.
 
 ## Main declarations
 
-* `SimpleGraph.farFromTriangleFree`: Predicate for a graph to have enough triangles that, to
-  remove all of them, one must one must remove a lot of edges. This is the crux of the Triangle
-  Removal lemma.
+* `SimpleGraph.FarFromTriangleFree`: Predicate for a graph such that one must remove a lot of edges
+  from it for it to become triangle-free. This is the crux of the Triangle Removal Lemma.
 
 ## TODO
 
 * Generalise `farFromTriangleFree` to other graphs, to state and prove the Graph Removal Lemma.
-* Find a better name for `farFromTriangleFree`. Added 4/26/2022. Remove this TODO if it gets old.
 -/
 
 
@@ -38,8 +36,8 @@ namespace SimpleGraph
 variable {α 𝕜 : Type*} [Fintype α] [LinearOrderedField 𝕜] {G H : SimpleGraph α} {ε δ : 𝕜} {n : ℕ}
   {s : Finset α}
 
-/-- A simple graph is *`ε`-triangle-free far* if one must remove at least `ε * (card α)^2` edges to
-make it triangle-free. -/
+/-- A simple graph is *`ε`-far from triangle-free* if one must remove at least
+`ε * (card α) ^ 2` edges to make it triangle-free. -/
 def FarFromTriangleFree (G : SimpleGraph α) (ε : 𝕜) : Prop :=
   (G.DeleteFar fun H => H.CliqueFree 3) <| ε * (card α ^ 2 : ℕ)
 #align simple_graph.far_from_triangle_free SimpleGraph.FarFromTriangleFree
@@ -51,9 +49,9 @@ theorem farFromTriangleFree_iff : G.FarFromTriangleFree ε ↔ ∀ ⦃H⦄, H 
 alias ⟨farFromTriangleFree.le_card_sub_card, _⟩ := farFromTriangleFree_iff
 #align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_card
 
-theorem farFromTriangleFree.mono (hε : G.FarFromTriangleFree ε) (h : δ ≤ ε) :
+nonrec theorem FarFromTriangleFree.mono (hε : G.FarFromTriangleFree ε) (h : δ ≤ ε) :
     G.FarFromTriangleFree δ := hε.mono <| by gcongr
-#align simple_graph.far_from_triangle_free.mono SimpleGraph.farFromTriangleFree.mono
+#align simple_graph.far_from_triangle_free.mono SimpleGraph.FarFromTriangleFree.mono
 
 theorem FarFromTriangleFree.cliqueFinset_nonempty' (hH : H ≤ G) (hG : G.FarFromTriangleFree ε)
     (hcard : (G.edgeFinset.card - H.edgeFinset.card : 𝕜) < ε * (card α ^ 2 : ℕ)) :
feat: patch for new alias command (#6172)
Diff
@@ -48,7 +48,7 @@ theorem farFromTriangleFree_iff : G.FarFromTriangleFree ε ↔ ∀ ⦃H⦄, H 
   ε * (card α ^ 2 : ℕ) ≤ G.edgeFinset.card - H.edgeFinset.card := deleteFar_iff
 #align simple_graph.far_from_triangle_free_iff SimpleGraph.farFromTriangleFree_iff
 
-alias farFromTriangleFree_iff ↔ farFromTriangleFree.le_card_sub_card _
+alias ⟨farFromTriangleFree.le_card_sub_card, _⟩ := farFromTriangleFree_iff
 #align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_card
 
 theorem farFromTriangleFree.mono (hε : G.FarFromTriangleFree ε) (h : δ ≤ ε) :
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -35,7 +35,7 @@ open Classical
 
 namespace SimpleGraph
 
-variable {α 𝕜 : Type _} [Fintype α] [LinearOrderedField 𝕜] {G H : SimpleGraph α} {ε δ : 𝕜} {n : ℕ}
+variable {α 𝕜 : Type*} [Fintype α] [LinearOrderedField 𝕜] {G H : SimpleGraph α} {ε δ : 𝕜} {n : ℕ}
   {s : Finset α}
 
 /-- A simple graph is *`ε`-triangle-free far* if one must remove at least `ε * (card α)^2` edges to
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2022 Yaël Dillies, Bhavik Mehta. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies, Bhavik Mehta
-
-! This file was ported from Lean 3 source module combinatorics.simple_graph.triangle.basic
-! leanprover-community/mathlib commit cd7f0626a0b04be1dda223a26123313514a55fb4
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Combinatorics.SimpleGraph.Clique
 import Mathlib.Tactic.GCongr
 
+#align_import combinatorics.simple_graph.triangle.basic from "leanprover-community/mathlib"@"cd7f0626a0b04be1dda223a26123313514a55fb4"
+
 /-!
 # Triangles in graphs
 
feat: golf using gcongr throughout the library (#4702)

100 sample uses of the new tactic gcongr, added in #3965.

Diff
@@ -9,6 +9,7 @@ Authors: Yaël Dillies, Bhavik Mehta
 ! if you have ported upstream changes.
 -/
 import Mathlib.Combinatorics.SimpleGraph.Clique
+import Mathlib.Tactic.GCongr
 
 /-!
 # Triangles in graphs
@@ -54,7 +55,7 @@ alias farFromTriangleFree_iff ↔ farFromTriangleFree.le_card_sub_card _
 #align simple_graph.far_from_triangle_free.le_card_sub_card SimpleGraph.farFromTriangleFree.le_card_sub_card
 
 theorem farFromTriangleFree.mono (hε : G.FarFromTriangleFree ε) (h : δ ≤ ε) :
-    G.FarFromTriangleFree δ := hε.mono <| mul_le_mul_of_nonneg_right h <| cast_nonneg _
+    G.FarFromTriangleFree δ := hε.mono <| by gcongr
 #align simple_graph.far_from_triangle_free.mono SimpleGraph.farFromTriangleFree.mono
 
 theorem FarFromTriangleFree.cliqueFinset_nonempty' (hH : H ≤ G) (hG : G.FarFromTriangleFree ε)
chore: bye-bye, solo bys! (#3825)

This PR puts, with one exception, every single remaining by that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh. The exception is when the by begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.

Essentially this is s/\n *by$/ by/g, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated bys".

Diff
@@ -66,8 +66,8 @@ theorem FarFromTriangleFree.cliqueFinset_nonempty' (hH : H ≤ G) (hG : G.FarFro
 
 variable [Nonempty α]
 
-theorem FarFromTriangleFree.nonpos (h₀ : G.FarFromTriangleFree ε) (h₁ : G.CliqueFree 3) : ε ≤ 0 :=
-  by
+theorem FarFromTriangleFree.nonpos (h₀ : G.FarFromTriangleFree ε) (h₁ : G.CliqueFree 3) :
+    ε ≤ 0 := by
   have := h₀ (empty_subset _)
   rw [coe_empty, Finset.card_empty, cast_zero, deleteEdges_empty_eq] at this
   exact nonpos_of_mul_nonpos_left (this h₁) (cast_pos.2 <| sq_pos_of_pos Fintype.card_pos)
@@ -87,4 +87,3 @@ theorem FarFromTriangleFree.cliqueFinset_nonempty (hG : G.FarFromTriangleFree ε
 #align simple_graph.far_from_triangle_free.clique_finset_nonempty SimpleGraph.FarFromTriangleFree.cliqueFinset_nonempty
 
 end SimpleGraph
-
feat: Port Combinatorics.SimpleGraph.Triangle.Basic (#2494)

Dependencies 7 + 231

232 files ported (97.1%)
101609 lines ported (97.1%)
Show graph

The unported dependencies are