mathlib documentation

data.nat.pairing

Naturals pairing function #

This file defines a pairing function for the naturals as follows: 0 1 4 9 16 2 3 5 10 17 6 7 8 11 18 12 13 14 15 19 20 21 22 23 24

It has the advantage of being monotone in both directions and sending ⟦0, n^2 - 1⟧ to ⟦0, n - 1⟧².

def nat.mkpair (a b : ) :

Pairing function for the natural numbers.

Equations
def nat.unpair (n : ) :

Unpairing function for the natural numbers.

Equations
@[simp]
theorem nat.mkpair_unpair (n : ) :
theorem nat.mkpair_unpair' {n a b : } (H : n.unpair = (a, b)) :
a.mkpair b = n
@[simp]
theorem nat.unpair_mkpair (a b : ) :
(a.mkpair b).unpair = (a, b)
theorem nat.unpair_lt {n : } (n1 : 1 n) :
@[simp]
theorem nat.unpair_zero  :
0.unpair = 0
theorem nat.unpair_left_le (n : ) :
theorem nat.left_le_mkpair (a b : ) :
a a.mkpair b
theorem nat.right_le_mkpair (a b : ) :
b a.mkpair b
theorem nat.unpair_right_le (n : ) :
theorem nat.mkpair_lt_mkpair_left {a₁ a₂ : } (b : ) (h : a₁ < a₂) :
a₁.mkpair b < a₂.mkpair b
theorem nat.mkpair_lt_mkpair_right (a : ) {b₁ b₂ : } (h : b₁ < b₂) :
a.mkpair b₁ < a.mkpair b₂
theorem set.Union_unpair_prod {α : Type u_1} {β : Type u_2} {s : set α} {t : set β} :
(⋃ (n : ), (s n.unpair.fst).prod (t n.unpair.snd)) = (⋃ (n : ), s n).prod (⋃ (n : ), t n)