Deutsch   English   Français   Italiano  
<105mba6$2l3t3$2@solani.org>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: nntp.eternal-september.org!news.eternal-september.org!eternal-september.org!feeder3.eternal-september.org!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: Mild Shock <janburse@fastmail.fm>
Newsgroups: sci.logic
Subject: At least 3 methods for Bisimilarity [Python BisPy] (Re: Bonus: Prolog
 Systems with Strings, Bigints, etc.. )
Date: Mon, 21 Jul 2025 23:26:30 +0200
Message-ID: <105mba6$2l3t3$2@solani.org>
References: <105lbr7$2idvv$2@solani.org> <105m9ap$2l2uv$1@solani.org>
 <105m9u7$2l38j$2@solani.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Mon, 21 Jul 2025 21:26:30 -0000 (UTC)
Injection-Info: solani.org;
	logging-data="2789283"; mail-complaints-to="abuse@news.solani.org"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101
 Firefox/128.0 SeaMonkey/2.53.21
Cancel-Lock: sha1:mtMTc61mLAntPZBqVMkUjOWCFxs=
In-Reply-To: <105m9u7$2l38j$2@solani.org>
X-User-ID: eJwFwQkBwDAIA0BLsIZPDtDGv4Td2XH1Dbg5jEbqSORUX7mU76zfa6wFx6VeP18EVDBfZi9UWVG2yZBD9A9qXRXJ

Hi,

There are at least 3 methods to decide
Bisimilarity, namely:

- Run into a ~ b using some loop checking
- Use a normal form and check nf(a) = nf(b)
- Or use a global partition method

The global partition method would look
at the full graph, that contains both a
and b. I suspect this Python package does that:

BisPy is a Python package for the computation
of the maximum bisimulation of directed graphs.
At the moment it supports the following algorithms:

- Paige-Tarjan
- Dovier-Piazza-Policriti
- Saha

https://github.com/fandreuz/BisPy

Have Fun!

Bye

Mild Shock schrieb:
> Hi,
> 
> My modelling for atomic Prolog types was a little
> overkill, since most Prolog systems are still fond
> of atom tables and stuff, but I had a edge with
> 
> label 0, between the adress of atomic Prolog type,
> and the "value" of an atomic Prolog type. Ok
> lets turn this overkill into a bonus:
> 
>  > So we can study two things under the same umbrella,
>  > inside the bisimulation framework of Robin Milner:
>  >
>  > - Lower Level adresses, such as *1, *2, *3, etc..
>  >
>  > - Higher Level Prolog terms, such as f(a,b), a, b, etc..
> 
> Add the following item:
> 
> - Prolog Systems with Strings, Bigints, etc.. (*)
> 
> When atomic things with different adresses
> can be still equal, but same_term/2 as
> realized in SWI-Prolog might not give that
> 
> information. Don’t know what it does…
> 
> Bye
> 
> Mild Shock schrieb:
>>
>> Bisimilarity has an interesting history, I
>> only figured out today. 1981 David Park
>> mentioned it in a appendix “Unresolved problems.”
>>
>> Concurrency and Automata on Infinite Sequences
>> David Park - 1981
>> https://scispace.com/pdf/concurrency-and-automata-on-infinite-sequences-3eilumrkv0.pdf 
>>
>>
>> 1983 Robin Milner had a more grown up theory
>> about it. With findings such as “Charts C1,
>> and C2, are congruent if they possess a bisimulation;
>> Congruence of charts is an equivalence relation.”
>>
>> A Complete Inference System for a Class of Regular Behaviours
>> Robin Milner - 1982
>> https://www.pure.ed.ac.uk/ws/portalfiles/portal/15159317/A_Complete_Inference_System_for_a_Class_of_Regular_Behaviours.pdf 
>>
>>
>> But how view syntactic Prolog terms as
>> infinte trees respective graphs. First of
>> all you need graphs that are labeled in their
>> edges, and also labeled in their nodes,
>>
>> so take a term: f(a,b):
>>
>>                      *1   (label f)
>>                     /  \
>>    (label 1)       /    \       (label 2)
>>                   /      \
>>    (label a)     *2       *3    (label b)
>>
>> The *1, *2 and *3 are some memory addresses.
>> The Robin Milner paper does bisimulation
>> when there are labels in the edges, he
>> doesn’t show bisimulation if there are
>> labels in the vertices as well,
>>
>> but one could use arg(0) for the functor,
>> actually effectively most Prolog systems
>> implement a compound as such, a Prolog compound
>> f(a,b) is basically internally some tupel (f,a,b):
>>
>>                   *1
>>     (label 0)  /  |  \
>>               /   |  (label 1)
>>             /     |      \       (label 2)
>>            f      *2      *3
>>                   |        |
>>        (label 0)  |        |    (label 0)
>>                   |        |
>>                   a        b
>>
>> So we can study two things under the same
>> umbrella, inside the bisimulation
>> framework of Robin Milner:
>>
>> - Lower Level adresses, such as *1, *2, *3, etc..
>>
>> - Higher Level Prolog terms, such as f(a,b), a, b, etc..
>>
>> Attention: The “Variables” in Robin Milners
>> paper are not Prolog Variables, they are more
>> like bread crumbs from Hänsel and Gretel,
>> to flee the Witch from the Forest.
>>
>> Mild Shock schrieb:
>>> Hi,
>>>
>>> Despite these efforts:
>>>
>>> The development of concurrent logic programming
>>> was given an impetus when Guarded Horn Clause was
>>> used to implement KL1, the systems programming
>>> language of the Japanese Fifth Generation
>>> Project (FGCS). The FGCS Project was a $400M
>>> initiative by Japan's Ministry of International
>>> Trade and Industry, begun in 1982, to use
>>> massively parallel computing/processing for
>>> artificial intelligence applications.
>>> https://en.wikipedia.org/wiki/Concurrent_logic_programming
>>>
>>> And relation ship to rational trees, in
>>> Alain Colmerauers WINDOW PRINCIPLE, mostlikely
>>> Bisimulation has a more lasting impact.
>>>
>>> But who were the founding fathers of bisimulation?
>>>
>>> Robin Milner (1934–2010)
>>> Primary founder of the concept of bisimulation. Introduced
>>> the idea in the context of Calculus of Communicating
>>> Systems (CCS) in the late 1970s and early 1980s. Bisimulation
>>> became central to his work on concurrency theory. He won
>>> the Turing Award in 1991, partly for this work.
>>>
>>> Gordon Plotkin
>>> While not the originator of bisimulation itself,
>>> Plotkin worked closely with Milner and contributed
>>> significantly to the theoretical foundations of
>>> operational semantics and domain theory, which
>>> intersect with bisimulation.
>>>
>>> David Park
>>> Credited with influencing the notion of bisimulation.
>>> His unpublished manuscript (c. 1981) and personal
>>> communications inspired Milner’s formalization.
>>> He clarified the distinction between simulation
>>> and bisimulation.
>>>
>>> Bye
>>
>