]> matita.cs.unibo.it Git - helm.git/blobdiff - weblib/tutorial/chapter8.ma
commit by user andrea
[helm.git] / weblib / tutorial / chapter8.ma
index 7aac6fabca6a71b37ddc1e0dcf0112f5e6c0bd93..c0d4d91dc25594fffa820ea7f23ad4b5155abd6f 100644 (file)
@@ -1,3 +1,22 @@
+(*
+\ 5h1\ 6Broadcasting points\ 5/h1\ 6
+Intuitively, a regular expression e must be understood as a pointed expression with a single 
+point in front of it. Since however we only allow points before symbols, we must broadcast 
+this initial point inside e traversing all nullable subexpressions, that essentially corresponds 
+to the ϵ-closure operation on automata. We use the notation •(_) to denote such an operation;
+its definition is the expected one: let us start discussing an example.
+
+\ 5b\ 6Example\ 5/b\ 6
+Let us broadcast a point inside (a + ϵ)(b*a + b)b. We start working in parallel on the 
+first occurrence of a (where the point stops), and on ϵ that gets traversed. We have hence 
+reached the end of a + ϵ and we must pursue broadcasting inside (b*a + b)b. Again, we work in 
+parallel on the two additive subterms b^*a and b; the first point is allowed to both enter the 
+star, and to traverse it, stopping in front of a; the second point just stops in front of b. 
+No point reached that end of b^*a + b hence no further propagation is possible. In conclusion: 
+               •((a + ϵ)(b^*a + b)b) = 〈(•a + ϵ)((•b)^*•a + •b)b, false〉
+*)
+
+
 include "tutorial/chapter7.ma".
 
 definition lo ≝ λS:DeqSet.λa,b:pre S.〈\fst a + \fst b,\snd a ∨ \snd b〉.