mathlib documentation

data.​list.​palindrome

data.​list.​palindrome

Palindromes

This module defines palindromes, lists which are equal to their reverse.

The main result is the palindrome inductive type, and its associated palindrome.rec_on induction principle. Also provided are conversions to and from other equivalent definitions.

References

Tags

palindrome, reverse, induction

inductive palindrome {α : Type u_1} :
list α → Prop

palindrome l asserts that l is a palindrome. This is defined inductively:

  • The empty list is a palindrome;
  • A list with one element is a palindrome;
  • Adding the same element to both ends of a palindrome results in a bigger palindrome.
theorem palindrome.​reverse_eq {α : Type u_1} {l : list α} :
palindrome ll.reverse = l

theorem palindrome.​of_reverse_eq {α : Type u_1} {l : list α} :
l.reverse = lpalindrome l

theorem palindrome.​iff_reverse_eq {α : Type u_1} {l : list α} :

theorem palindrome.​append_reverse {α : Type u_1} (l : list α) :