1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 include "ground_2/notation/relations/istype_2.ma".
16 include "ground_2/steps/rtc.ma".
18 (* T-TRANSITION COUNTER *****************************************************)
20 definition ist: relation2 nat rtc ≝
21 λts,c. 〈0,0,0,ts〉 = c.
23 interpretation "test for t-transition counter (rtc)"
24 'IsType ts c = (ist ts c).
26 (* Basic properties *********************************************************)
28 lemma isr_00: 𝐓⦃0,𝟘𝟘⦄.
31 lemma ist_01: 𝐓⦃1,𝟘𝟙⦄.
34 (* Basic inversion properties ***********************************************)
36 lemma ist_inv_00: ∀n. 𝐓⦃n,𝟘𝟘⦄ → 0 = n.
40 lemma ist_inv_01: ∀n. 𝐓⦃n,𝟘𝟙⦄ → 1 = n.
44 lemma ist_inv_10: ∀n. 𝐓⦃n,𝟙𝟘⦄ → ⊥.
48 (* Main inversion properties ************************************************)
50 theorem ist_inj: ∀n1,n2,c. 𝐓⦃n1,c⦄ → 𝐓⦃n2,c⦄ → n1 = n2.
51 #n1 #n2 #c #H1 #H2 destruct //
54 theorem ist_mono: ∀n,c1,c2. 𝐓⦃n,c1⦄ → 𝐓⦃n,c2⦄ → c1 = c2.
55 #n #c1 #c2 #H1 #H2 destruct //