{-# OPTIONS --safe --without-K #-}
open import Algebra.Bundles using (Group)
module Algebra.Group.Reasoning {gβ gβ} (π : Group gβ gβ) where
open import Algebra.Group.Symmetric π
open import Algebra.Group.Symmetric.Equality π
open import Algebra.Group.Symmetric.Inclusion π public
open import Algebra.Group.Symmetric.PartialEquality π
open Group PartSymGroup hiding (_β_)
open Group π using (_β_)
applyAt : β f {g} before after β f β£ g β before β f β after β£' before β g β after
applyAt f {g} before after p = β-congΚ³ {after} {before β f} {before β g} lem
where
lem : before β f β£' before β g
lem = β-congΛ‘ {before} {f} {g} (weaken p)
applyAtT : β f {g} before after {h}
β f β£ g
β before β g β after β£' h
β before β f β after β£' h
applyAtT f {g} before after p rest = β£'-trans {before β f β after} {before β g β after} (applyAt f before after p) rest
applyAtT' : β f {g} before after {h}
β g β£ f
β before β g β after β£' h
β before β f β after β£' h
applyAtT' f before after p rest = applyAtT f before after (β£-sym p) rest
applyAtTnoB : β f {g} after {h}
β f β£ g
β g β after β£' h
β f β after β£' h
applyAtTnoB f after p rest = applyAtT f e after p rest
applyAtTnoB' : β f {g} after {h}
β g β£ f
β g β after β£' h
β f β after β£' h
applyAtTnoB' f after p rest = applyAtT' f e after p rest
applyAtTnoA : β f {g} before {h}
β f β£ g
β before β g β£' h
β before β f β£' h
applyAtTnoA f before p rest = applyAtT f before e p rest
applyAtTnoA' : β f {g} before {h}
β g β£ f
β before β g β£' h
β before β f β£' h
applyAtTnoA' f before p rest = applyAtT' f before e p rest
applyAtTnoBA : β f {g} {h}
β f β£ g
β g β£' h
β f β£' h
applyAtTnoBA f p rest = applyAtT f e e p rest
applyAtTnoBA' : β f {g} {h}
β g β£ f
β g β£' h
β f β£' h
applyAtTnoBA' f p rest = applyAtT' f e e p rest
applyAtTM : β {g} before after {h}
β e β£ g
β before β g β after β£' h
β before β e β after β£' h
applyAtTM before after p rest = applyAtT e before after p rest
applyAtTM' : β {g} before after {h}
β g β£ e
β before β g β after β£' h
β before β after β£' h
applyAtTM' before after p rest = applyAtTM before after (β£-sym p) rest
applyAtTnoBM : β {g} after {h}
β e β£ g
β g β after β£' h
β after β£' h
applyAtTnoBM after p rest = applyAtTM e after p rest
applyAtTnoBM' : β {g} after {h}
β g β£ e
β g β after β£' h
β after β£' h
applyAtTnoBM' after p rest = applyAtTM' e after p rest
applyAtTnoAM : β {g} before {h}
β e β£ g
β before β g β£' h
β before β£' h
applyAtTnoAM before p rest = applyAtTM before e p rest
applyAtTnoAM' : β {g} before {h}
β g β£ e
β before β g β£' h
β before β£' h
applyAtTnoAM' before p rest = applyAtTM' before e p rest
applyAtTnoBAM : β {g} {h}
β e β£ g
β g β£' h
β e β£' h
applyAtTnoBAM p rest = applyAtTM e e p rest
applyAtTnoBAM' : β {g} {h}
β g β£ e
β g β£' h
β e β£' h
applyAtTnoBAM' p rest = applyAtTM' e e p rest
infixr 40 applyAtT
syntax applyAtT f before after p rest = before ββ¨ f β©β after β£β¨ p β© rest
infixr 40 applyAtT'
syntax applyAtT' f before after p rest = before ββ¨ f β©β after β£Λβ¨ p β© rest
infixr 40 applyAtTnoB
syntax applyAtTnoB f after p rest = β¨ f β©β after β£β¨ p β© rest
infixr 40 applyAtTnoB'
syntax applyAtTnoB' f after p rest = β¨ f β©β after β£Λβ¨ p β© rest
infixr 40 applyAtTnoA
syntax applyAtTnoA f before p rest = before ββ¨ f β©β£β¨ p β© rest
infixr 40 applyAtTnoA'
syntax applyAtTnoA' f before p rest = before ββ¨ f β©β£Λβ¨ p β© rest
infixr 40 applyAtTnoBA
syntax applyAtTnoBA f p rest = β¨ f β©β£β¨ p β© rest
infixr 40 applyAtTnoBA'
syntax applyAtTnoBA' f p rest = β¨ f β©β£Λβ¨ p β© rest
infixr 40 applyAtTM
syntax applyAtTM before after p rest = before ββ¨β©β after β£β¨ p β© rest
infixr 40 applyAtTM'
syntax applyAtTM' before after p rest = before ββ¨β©β after β£Λβ¨ p β© rest
infixr 40 applyAtTnoBM
syntax applyAtTnoBM after p rest = β¨β©β after β£β¨ p β© rest
infixr 40 applyAtTnoBM'
syntax applyAtTnoBM' after p rest = β¨β©β after β£Λβ¨ p β© rest
infixr 40 applyAtTnoAM
syntax applyAtTnoAM before p rest = before ββ¨β©β£β¨ p β© rest
infixr 40 applyAtTnoAM'
syntax applyAtTnoAM' before p rest = before ββ¨β©β£Λβ¨ p β© rest
infixr 40 applyAtTnoBAM
syntax applyAtTnoBAM p rest = β¨β©β£β¨ p β© rest
infixr 40 applyAtTnoBAM'
syntax applyAtTnoBAM' p rest = β¨β©β£Λβ¨ p β© rest
end : β h β h β£' h
end h = β£'-refl {h}
infixr 50 end
syntax end h = h β
open import Algebra.Group.Reasoning.Reflection π public