Theory RightComplementedMonoid
section‹Right Complemented Monoid›
theory RightComplementedMonoid
imports LeftComplementedMonoid
begin
class left_pordered_monoid_mult = order + monoid_mult +
assumes mult_left_mono: "a ≤ b ⟹ c * a ≤ c * b"
class integral_left_pordered_monoid_mult = left_pordered_monoid_mult + one_greatest
class right_residuated = ord + times + right_imp +
assumes right_residual: "(a * x ≤ b) = (x ≤ a r→ b)"
class right_residuated_pordered_monoid = integral_left_pordered_monoid_mult + right_residuated
class right_inf = inf + times + right_imp +
assumes inf_r_def: "(a ⊓ b) = a * (a r→ b)"
class right_complemented_monoid = right_residuated_pordered_monoid + right_inf +
assumes left_divisibility: "(a ≤ b) = (∃ c . a = b * c)"
sublocale right_complemented_monoid < dual: left_complemented_monoid "λ a b . b * a" "(⊓)" "(r→)" 1 "(≤)" "(<)"
apply unfold_locales
apply (simp_all add: inf_r_def mult.assoc mult_left_mono)
apply (simp add: right_residual)