Zulip Chat Archive
Stream: new members
Topic: reflexive transitive closure
Huỳnh Trần Khanh (Jun 04 2021 at 15:20):
what does that mean? I saw that word in the operational semantics lean file in the logical verification repo
and why is there a separate *=> operator in addition to the => operator?
Huỳnh Trần Khanh (Jun 04 2021 at 15:21):
Mario Carneiro (Jun 04 2021 at 15:23):
The star on a relation symbol usually means the reflexive transitive closure of the relation without the star. So if -> is a relation then ->* is the reflexive transitive closure of R
Mario Carneiro (Jun 04 2021 at 15:24):
The reflexive transitive closure is, as the name implies, the closure of a relation under reflexivity and transitivity. Concretely, that means that x R* y
if there exists a finite sequence x = z0 R z1 R ... R zn = y
Mario Carneiro (Jun 04 2021 at 15:25):
in particular the sequence is allowed to be empty, so that x R* x
Mario Carneiro (Jun 04 2021 at 15:25):
i.e. it is reflexive
Mario Carneiro (Jun 04 2021 at 15:26):
and it is transitive because if you have two such chains of R-relations you can append them to get a longer chain, so x R* y R* z
implies x R* z
Mario Carneiro (Jun 04 2021 at 15:26):
mathlib has a definition of the reflexive transitive closure at docs#relation.refl_trans_gen
Last updated: Dec 20 2023 at 11:08 UTC