Is there a formalization in Isabelle/HOL of the strong normalization property of the simply typed lambda-calculus with pairs?
I am aware of the development in ~~/src/HOL/Proofs/Lambda/StrongNorm.thy
, but that one does not support pairs. (Terms only consist of abstractions, applications, and variables.)
To be specific, by "pairs" I mean that the language should contain constructs such as Pair x y
, Fst x
, Snd x
. And I do not need dependent pairs.
Background: The problem came up as part of a larger development where I need strong normalization of a more complex calculus which can, however, be reduced to the strong normalization of the simply typed lambda calculus with pairs by a suitable embedding.