(**************************************************************************) (* ___ *) (* ||M|| *) (* ||A|| A project by Andrea Asperti *) (* ||T|| *) (* ||I|| Developers: *) (* ||T|| The HELM team. *) (* ||A|| http://helm.cs.unibo.it *) (* \ / *) (* \ / This file is distributed under the terms of the *) (* v GNU General Public License Version 2 *) (* *) (**************************************************************************) include "delayed_updating/substitution/lift.ma". include "ground/relocation/tr_pap_eq.ma". include "ground/relocation/tr_pn_eq.ma". (* LIFT FOR PATH ***********************************************************) definition lift_exteq (A): relation2 (lift_continuation A) (lift_continuation A) ≝ λk1,k2. ∀f1,f2,p. f1 ≗ f2 → k1 f1 p = k2 f2 p. interpretation "extensional equivalence (lift continuation)" 'RingEq A k1 k2 = (lift_exteq A k1 k2). (* Constructions with lift_exteq ********************************************) lemma lift_eq_repl (A) (p) (k1) (k2): k1 ≗{A} k2 → stream_eq_repl … (λf1,f2. ↑❨k1, f1, p❩ = ↑❨k2, f2, p❩). #A #p elim p -p [| * [ #n ] #q #IH ] #k1 #k2 #Hk #f1 #f2 #Hf [ lift_lcons_alt // >lift_append_rcons_sn // lift_lcons_alt nrplus_inj_dx /2 width=1 by tr_tls_compose_uni_dx/ qed. *)