mathlib documentation



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.



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 α) :