Sorry, in previous mails I have wrongly copied the KLOP theorems for finite version. Below is the correct theorems for infinite version:
[Klop_0] Theorem
|- ∀a. Klop a 0 = ABS_graph ({0},∅)
[Klop_PROP0] Theorem
|- ∀a n N. n ≤ N ⇒ STABLE (lts n (Klop a N))
[Klop_PROP1] Theorem
|- ∀a n E N.
n ≤ N ⇒
(lts n (Klop a N) --label a--> E ⇔
∃m. m < n ∧ (E = lts m (Klop a N)))
[Klop_PROP2] Theorem
|- ∀a n m N. m < n ∧ n ≤ N ⇒ ¬(lts m (Klop a N) ∼ lts n (Klop a N))
[Klop_PROP2'] Theorem
|- ∀a n m N. m < n ∧ n ≤ N ⇒ ¬(lts m (Klop a N) ≈ lts n (Klop a N))
And all my proof scripts can be found at [1]. These’re new developments,
they’re not in HOL’s example/CCS folder.
[1] https://github.com/binghe/informatica-public/tree/master/thesis
> Il giorno 12 ott 2017, alle ore 11:51, Chun Tian <[email protected]> ha
> scritto:
>
> Hi,
>
> This mail is long, it’s very important for me, and it's a continuation of my
> previous two big questions in 3 months ago, titled "On the use of new_axiom()
> in formal projects” and "How to define "infinite sums" of custom datatypes?”.
>
> The good thing is, I have resolved the previous difficulties in expressing
> infinite sums in process algebra, and have prevented using an axiom. I
> didn’t use the paper of Dr. Andrei Popescu, simply because it’s too hard for
> my current skills. I also didn’t use the idea from Michael Norrish, by
> introducing another larger Datatype:
>
> Datatype`CCS = … existing def … (* with or without finite/binary sums *)`
> Datatype`bigCCS = SUM (num -> CCS)`
>
> Because the "infinite sum” in my problem happens at infinite levels, but this
> “bigCCS” cannot further include itself.
>
> My solution is to embed LTS (labeled transition system) into CCS datatype:
>
> val _ = type_abbrev ("LTS", ``:('a ordinal, 'b Action) graph``);
>
> (* Define the type of (pure) CCS agent expressions. *)
> val _ = Datatype `CCS = nil
> | var 'a
> | prefix ('b Action) CCS
> | sum CCS CCS
> | par CCS CCS
> | restr (('b Label) set) CCS
> | relab CCS ('b Relabeling)
> | rec 'a CCS
> | lts ('a ordinal) (('a, 'b) LTS)`;
>
> here the type “:(‘a, ‘b) graph” is my creation in response of providing a
> general graph theory formalization [1], ‘a is the type of vertex, ‘b is the
> type of edge label. Currently it’s far from complete, with lots of possibly
> wrong definitions but no much supporting theorems. But it worked for my
> current needs. For my problem described in this mail, the structure of this
> graph doesn’t matter, you can safely think it’s a set (defined by
> pred_setTheory) with 'a ordinals as vertices.
>
> The “lts” constructor in above CCS datatype is my creation without knowing
> any similar work. the term ``lts r G`` means a rooted LTS, where “r” is a
> vertex in the graph G, as the root node. For this new constructor, I have
> defined a single transition rule:
>
> val (TRANS_rules, TRANS_ind, TRANS_cases) = Hol_reln `
> (!E u. TRANS (prefix u E) u E) /\
> (* PREFIX *)
> (!E u E1 E'. TRANS E u E1 ==> TRANS (sum E E') u E1) /\ (* SUM1
> *)
> (!E u E1 E'. TRANS E u E1 ==> TRANS (sum E' E) u E1) /\ (* SUM2
> *)
> ...
> (!E u E' G. (E, u, E') IN (TS G)
> ==> TRANS (lts E G) u (lts E' G)) `; (* LTS
> *)
>
> That is, TRANS (lts E G) u (lts E' G) is true if and only if there is a
> labeled edge E—u—>E’ in the graph G. The most surprising fact is, after
> introducing such a new constructor “lts” and its transition rule, all my
> previous proved theorems are still working. The only changes I have to do,
> is very few theorems in which the TRANS_cases theorem is used, but the
> additional sub-goal is trivial.
>
> So, all my definitions like Bisimulation, Weak bisimulation, etc. now also
> work in pure transition systems (as rooted directed graphs). I feel so happy
> for having LTS included in my formalization of CCS and prevented for
> re-defining almost everything again. And the mixing of LTS and CCS is now
> also meaningful: two graphs can be connected directly by algebraic
> operators, and the combined transition characteristics still make perfect
> sense.
>
> Now I have the following so-called Klop process, which is actually an set of
> “Arbitrary many non-bisimiar process”:
>
> Klop l n =
> ABS_graph ({m | m ≤ n},{{p} --label l--> {q} | p ≤ n ∧ q < p}):
>
> without any new axiom, now I can prove the following properties:
>
> [KLOP_PROP0] Theorem (all these processes are stable, i.e. has no
> tau-transition)
>
> |- ∀a n. STABLE (KLOP a n)
>
> [KLOP_PROP1] Theorem (any transition from such a process, leads to a
> smaller process by the same generator)
>
> |- ∀a n E. KLOP a n --label a--> E ⇔ ∃m. m < n ∧ (E = KLOP a m)
>
> [KLOP_PROP1'] Theorem (the same as above, but for weak transition, which
> is actually strong transition because there’s no tau at all)
>
> |- ∀a n E. KLOP a n ==label a=-> E ⇔ ∃m. m < n ∧ (E = KLOP a m)
>
> [KLOP_PROP2] Theorem (two different sized such processes are not strong
> bisimilar)
>
> |- ∀a n m. m < n ⇒ ¬(KLOP a m ∼ KLOP a n)
>
> [KLOP_PROP2'] Theorem (two different sized such processes are also not
> weak bisimilar)
>
> |- ∀a n m. m < n ⇒ ¬(KLOP a m ≈ KLOP a n)
>
> Again, I feel so happy for successfully proved and defined above function and
> its properties. Now it remains to use it for proving the ultimate “simple”
> theorem above process algebra:
>
> ``!p q. OBS_CONGR p q = !r. WEAK_EQUIV (sum p r) (sum q r)`` (observation
> congruence is the coarsest congruence contained in weak bisimulation)
>
> Now it’s touching my question and two difficulties:
>
> The proof of above theorem has been reduced to: finding a special process K,
> which is not (weak) bisimilar with any node in the transition graph of two
> given processes p and q. The informal proof [2] is like this:
>
> “Let c be the smallest infinite cardinal, such that NODES(p) and
> NODES(q) has less than c nodes. So there are less than c processes in
> NODES(p) and NODES(q). Then there’s a tau-free process K with NODES(K) < c,
> such that k is not bisimiar with any nodes in NODES(p) and NODES(q),
> BECAUSE: for each infinite cardinal c there are c ordinals smaller than c.”
>
> If I've learnt correctly, in standard set theory, all cardinals are ordinals,
> but the reverse is not true, because not every ordinals “has the same number
> (as itself) of smaller ordinals”. But in HOL’s currently formalization,
> cardinalTheory is depended by ordinalTheory, and ordinalTheory didn’t define
> “cardinal numbers” at all. Whenever an informal proof says "Let xxx be the
> smallest infinite cardinal, such that …”, I don’t know how to formalize it at
> all, because there’s no concept of “cardinal (number)” that I can use.
>
> Further more, my Klop function has the type: ‘a ordinal -> (‘a, ‘b) CCS.
> I have no way to change the first type variable to ‘c so that it’s
> independent with type variables used in CCS, because ordinal numbers were
> actually written as part of the CCS processes (as vertices in the lts graph).
> But this means I have no way to use my previous proved theorem:
>
> [ONE_ONE_IMP_NOTIN] Theorem
>
> |- ∀A f. ONE_ONE f ⇒ ∃n. f n ∉ A
>
> which is based on “univ_ord_greater_cardinal” in ordinalTheory. Because the
> type unification will fail: for any set of type ``(:’a, ‘b) CCS -> bool``, I
> have no way to say there’s always a bigger ‘a ordinal, which is “larger” than
> the “cardinality” of the set. Also please noticed that, now my CCS is at
> least as large as the “set" of all ‘a ordinals, because I do can inject each
> single ordinals into a CCS process, i.e. my Klop function defined above.
>
> I hope I’ve explained well for my two questions, let me summarize them again:
>
> 1. How to express the cardinality of a set as “cardinal numbers” in HOL?
> 2. How to find a larger ordinal for a set of custom-defined datatype, when
> their type variables are related?
>
> Best regards,
>
> Chun Tian
>
> [1]
> https://github.com/binghe/informatica-public/blob/master/thesis/GraphScript.sml
> [2] van Glabbeek, R.J.: A characterisation of weak bisimulation congruence.
> Lecture notes in computer science. 3838, 26–39 (2005).
>
>
signature.asc
Description: Message signed with OpenPGP using GPGMail
------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________ hol-info mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/hol-info
