feat(data/nat/basic): add `strong_sub_recursion` and `pincer_recursion` (#15061)
feat(data/nat/basic): add `strong_sub_recursion` and `pincer_recursion` (#15061)

Adding two recursion principles for `P : ℕ → ℕ → Sort*`

`strong_sub_recursion`: if for all `a b : ℕ` we can extend `P` from the rectangle strictly below `(a,b)` to `P a b`, then we have `P n m` for all `n m : ℕ`.

`pincer_recursion`: if we have `P i 0` and `P 0 i` for all `i : ℕ`, and for any `x y : ℕ` we can extend `P` from `(x,y+1)` and `(x+1,y)` to `(x+1,y+1)` then we have `P n m` for all `n m : ℕ`.


`strong_sub_recursion` is adapted by @vihdzp from @CBirkbeck 's #14828

Co-authored-by: Chris Birkbeck <50e9fa2b5ce09c897941eb58f26a7cd97ee7dce2@gmail.com>
Co-authored-by: Violeta Hernández <ef7791a37841fc4d43c525b2b4c85d848ab1cdf0@gmail.com>
Co-authored-by: Eric Wieser <da64e90baec5d084ce3d8e05f3b022ae6d118ff5@gmail.com>





leanprover-community/mathlib,leanprover-community/mathlib