Skip to content

Commit 2086a11

Browse files
add irefl, icong and icong' (#1224)
1 parent f831cb2 commit 2086a11

File tree

2 files changed

+36
-10
lines changed

2 files changed

+36
-10
lines changed

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,3 +565,12 @@ Other minor additions
565565
cong₂-reflˡ : cong₂ _∙_ refl p ≡ cong (x ∙_) p
566566
cong₂-reflʳ : cong₂ _∙_ p refl ≡ cong (_∙ u) p
567567
```
568+
569+
* Added new combinators to `Relation.Binary.PropositionalEquality.Core`:
570+
```agda
571+
pattern erefl x = refl {x = x}
572+
573+
cong′ : {f : A → B} x → f x ≡ f x
574+
icong : {f : A → B} {x y} → x ≡ y → f x ≡ f y
575+
icong′ : {f : A → B} x → f x ≡ f x
576+
```

src/Relation/Binary/PropositionalEquality/Core.agda

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,33 @@ infix 4 _≢_
3232
_≢_ : {A : Set a} Rel A a
3333
x ≢ y = ¬ x ≡ y
3434

35+
------------------------------------------------------------------------
36+
-- A variant of `refl` where the argument is explicit
37+
38+
pattern erefl x = refl {x = x}
39+
40+
------------------------------------------------------------------------
41+
-- Congruence lemmas
42+
43+
cong : (f : A B) {x y} x ≡ y f x ≡ f y
44+
cong f refl = refl
45+
46+
cong′ : {f : A B} x f x ≡ f x
47+
cong′ _ = refl
48+
49+
icong : {f : A B} {x y} x ≡ y f x ≡ f y
50+
icong = cong _
51+
52+
icong′ : {f : A B} x f x ≡ f x
53+
icong′ _ = refl
54+
55+
cong₂ : (f : A B C) {x y u v} x ≡ y u ≡ v f x u ≡ f y v
56+
cong₂ f refl refl = refl
57+
58+
cong-app : {A : Set a} {B : A Set b} {f g : (x : A) B x}
59+
f ≡ g (x : A) f x ≡ g x
60+
cong-app refl x = refl
61+
3562
------------------------------------------------------------------------
3663
-- Properties of _≡_
3764

@@ -44,19 +71,9 @@ trans refl eq = eq
4471
subst : Substitutive {A = A} _≡_ ℓ
4572
subst P refl p = p
4673

47-
cong : (f : A B) {x y} x ≡ y f x ≡ f y
48-
cong f refl = refl
49-
5074
subst₂ : (_∼_ : REL A B ℓ) {x y u v} x ≡ y u ≡ v x ∼ u y ∼ v
5175
subst₂ _ refl refl p = p
5276

53-
cong-app : {A : Set a} {B : A Set b} {f g : (x : A) B x}
54-
f ≡ g (x : A) f x ≡ g x
55-
cong-app refl x = refl
56-
57-
cong₂ : (f : A B C) {x y u v} x ≡ y u ≡ v f x u ≡ f y v
58-
cong₂ f refl refl = refl
59-
6077
respˡ : (∼ : Rel A ℓ) ∼ Respectsˡ _≡_
6178
respˡ _∼_ refl x∼y = x∼y
6279

0 commit comments

Comments
 (0)