Reducible element
Conjectura.Defs.ComputerScience.Rewriting.Reducible
/-
Copyright (c) 2025 Fabrizio Montesi and Thomas Waring. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Fabrizio Montesi, Thomas Waring, Chris Henson
-/
import Mathlib.Logic.Relation
/-! # Reducible element
## Source
Adapted for Conjectura from [cslib](https://github.com/leanprover/cslib), `Cslib/Foundations/Relation/Defs.lean`, split into one concept per module. Released by its authors under Apache 2.0.
-/
namespace Conjectura.Rewriting
/-- An element `x` is **reducible** under a relation `r` when some `y` satisfies `r x y` —
that is, at least one rewrite step applies to it. -/
def Reducible {α : Type*} (r : α → α → Prop) (x : α) : Prop := ∃ y, r x y
end Conjectura.Rewriting