- useDecide : Bool
 - emptyType : Bool
Check whether any of the hypotheses is an empty type.
 - searchFuel : Nat
When checking for empty types,
searchFuelspecifies the number of goals visited. - genDiseq : Bool
 
Instances For
@[reducible, inline]
Instances For
Equations
- Lean.Meta.ElimEmptyInductive.instMonadBacktrackSavedStateM = { saveState := liftM Lean.Meta.saveState, restoreState := fun (s : Lean.Meta.SavedState) => liftM s.restore }
 
def
Lean.MVarId.contradictionCore
(mvarId : Lean.MVarId)
(config : Lean.Meta.Contradiction.Config)
 :
Return true if goal mvarId has contradictory hypotheses.
See MVarId.contradiction for the list of tests performed by this method.
Equations
- One or more equations did not get rendered due to their size.
 
Instances For
def
Lean.MVarId.contradiction
(mvarId : Lean.MVarId)
(config : optParam Lean.Meta.Contradiction.Config { useDecide := true, emptyType := true, searchFuel := 16, genDiseq := false })
 :
Try to close the goal using "contradictions" such as
- Contradictory hypotheses 
h₁ : pandh₂ : ¬ p. - Contradictory disequality 
h : x ≠ x. - Contradictory equality between different constructors, e.g., 
h : List.nil = List.cons x xs. - Empty inductive types, e.g., 
x : Fin 0. - Decidable propositions that evaluate to false, i.e., a hypothesis 
h : ps.t.decide preduces tofalse. This is only tried ifConfig.useDecide = true. 
Throw exception if goal failed to be closed.
Equations
- mvarId.contradiction config = do let __do_lift ← mvarId.contradictionCore config if __do_lift = true then pure PUnit.unit else Lean.Meta.throwTacticEx `contradiction mvarId