Theorems / mh_sets_80248a

Mathlib held-out

Sets · medium

Statement, exactly as the model and Lean see it
theorem lg_target {α : Type u_1} {β : Type u_2} [Preorder β] {f : Finset α → β} [DecidableEq α] : StrictMono f ↔ ∀ (s : Finset α) ⦃a : α⦄, a ∉ s → f s < f (insert a s) := by
Mathlib declaration
Finset.strictMono_iff_forall_lt_insert
Held-out module
Mathlib.Data.Finset.Interval
Banned modules (itself + downstream)
2
Reference proof premises (reachable / held-out)
1 / 1

Traces

Each configuration's full record: what was retrieved, what the model wrote, what Lean said back.

Not verified1 model calls · 1 Lean checks · $0.00009

Attempts

  1. sample 0 · round 0Wrong tactic3.7 s model time
    Proof
    intro h
    split
    · intro s a ha
      have : a ∉ s := ha
      exact h s a this
    · intro h'
      intros s t hst
      apply le_antisymm
      · intro x
        rw [finsupp.insert_le_iff]
        apply h'
        exact hst
      · intro x
        rw [finsupp.insert_le_iff]
        apply h'
        exact hst.symm
      exact le_refl _
    What Lean printed (this is all the model sees on repair)
    4:8: error: Tactic `introN` failed: There are no additional binders or `let` bindings in the goal to introduce
    
    α : Type u_1
    β : Type u_2
    inst✝¹ : Preorder β
    f : Finset α → β
    inst✝ : DecidableEq α
    ⊢ StrictMono f ↔ ∀ (s : Finset α) ⦃a : α⦄, a ∉ s → f s < f (insert a s)

Reference proof

Mathlib's own source for this declaration, shown for comparison. It may use lemmas the prover is not allowed to use.

/-- A function `f` from `Finset α` is strictly monotone if and only if `f s < f (insert a s)` for
all `s` and `a ∉ s`. -/
lemma strictMono_iff_forall_lt_insert : StrictMono f ↔ ∀ s ⦃a⦄, a ∉ s → f s < f (insert a s) := by
  simp [strictMono_iff_forall_lt_cons]