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/notation/relations/predicate_f_1.ma".
16 include "ground/relocation/pr_fcla.ma".
18 (* FINITE COLENGTH CONDITION FOR PARTIAL RELOCATION MAPS ********************)
21 definition pr_isf: predicate pr_map ā
22 Ī»f. ān. šāØfā© ā n.
25 "finite colength condition (partial relocation maps)"
26 'PredicateF f = (pr_isf f).
28 (* Basic eliminations *******************************************************)
31 lemma pr_isf_ind (Q:predicate ā¦):
32 (āf. šāØfā© ā Q f) ā
33 (āf. š
āØfā© ā Q f ā Q (ā«Æf)) ā
34 (āf. š
āØfā© ā Q f ā Q (āf)) ā
35 āf. š
āØfā© ā Q f.
36 #Q #IH1 #IH2 #IH3 #f #H elim H -H
37 #n #H elim H -f -n /3 width=2 by ex_intro/
40 (* Basic inversions *********************************************************)
42 (*** isfin_inv_push *)
43 lemma pr_isf_inv_push (g): š
āØgā© ā āf. ā«Æf = g ā š
āØfā©.
44 #g * /3 width=4 by pr_fcla_inv_push, ex_intro/
47 (*** isfin_inv_next *)
48 lemma pr_isf_inv_next (g): š
āØgā© ā āf. āf = g ā š
āØfā©.
49 #g * #n #H #f #H0 elim (pr_fcla_inv_next ā¦ H ā¦ H0) -g
50 /2 width=2 by ex_intro/
53 (* Basic constructions ******************************************************)
56 lemma pr_isf_isi (f): šāØfā© ā š
āØfā©.
57 /3 width=2 by pr_fcla_isi, ex_intro/ qed.
60 lemma pr_isf_push (f): š
āØfā© ā š
āØā«Æfā©.
61 #f * /3 width=2 by pr_fcla_push, ex_intro/
65 lemma pr_isf_next (f): š
āØfā© ā š
āØāfā©.
66 #f * /3 width=2 by pr_fcla_next, ex_intro/