<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to ocl2alloy FileSystem.uml &lt; FileSystem.ocl</title><link>https://sourceforge.net/p/alloymda/wiki/ocl2alloy%2520FileSystem.uml%2520%253C%2520FileSystem.ocl/</link><description>Recent changes to ocl2alloy FileSystem.uml &lt; FileSystem.ocl</description><atom:link href="https://sourceforge.net/p/alloymda/wiki/ocl2alloy%20FileSystem.uml%20%3C%20FileSystem.ocl/feed" rel="self"/><language>en</language><lastBuildDate>Sun, 25 Mar 2012 20:18:13 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/alloymda/wiki/ocl2alloy%20FileSystem.uml%20%3C%20FileSystem.ocl/feed" rel="self" type="application/rss+xml"/><item><title>WikiPage ocl2alloy FileSystem.uml &lt; FileSystem.ocl modified by Alcino Cunha</title><link>https://sourceforge.net/p/alloymda/wiki/ocl2alloy%2520FileSystem.uml%2520%253C%2520FileSystem.ocl/</link><description>~~~~~
module FileSystem
sig Time {}

sig Dir extends Object {}

sig File extends Object {}

sig FileSystem {objects : Object set -&gt; Time,root : Dir one -&gt; Time,wd : Dir one -&gt; Time}

sig Name {}

abstract sig Object {name : one Name,parent : Dir lone -&gt; Time}

fact {all t : Time | all self : Object | all y : Object | ((some v3 : Dir | (v3 in self.(parent.t)) &amp;&amp; (v3 in y.(parent.t))) &amp;&amp; (y != self)) =&gt; !(all v0 : Name | (v0 in self.name) =&gt; (v0 in y.name))}

fact {all t : Time | all self : Object | self not in self.^{v9 : univ,v0 : v9.(parent.t) | no none}}

fact {all t : Time | all self : FileSystem | all v12 : Dir | ((v12 in self.(root.t)) || (v12 in self.(wd.t))) =&gt; (v12 in self.(objects.t))}

fact {all t : Time | all self : FileSystem | all o : Object | (o in self.(objects.t)) =&gt; (all v17 : Dir | (v17 in o.(parent.t)) =&gt; (v17 in self.(objects.t)))}

fact {all t : Time | all self : FileSystem | all v24 : Object | (v24 in self.(objects.t)) =&gt; (some v27 : Dir | ((v24 = v27) || (v27 in v24.^{v28 : univ,v1 : v28.(parent.t) | no none})) &amp;&amp; (v27 in self.(root.t)))}

fun ls [self : FileSystem,t : Time] : set Object {{v33 : Object | (some v34 : Dir | (v34 in v33.(parent.t)) &amp;&amp; (v34 in self.(wd.t))) &amp;&amp; (v33 in self.(objects.t))}}

pred rm [self : FileSystem,f : File,t,t' : Time] {f in ls[self,t]
                                                  (all v43 : Object | (v43 in self.(objects.t')) =&gt; ((v43 in self.(objects.t)) &amp;&amp; (v43 != f))) &amp;&amp; (all v48 : Object | ((v48 in self.(objects.t)) &amp;&amp; (v48 != f)) =&gt; (v48 in self.(objects.t')))
                                                  (all v53 : Dir | (v53 in self.(root.t')) =&gt; (v53 in self.(root.t))) &amp;&amp; (all v58 : Dir | (v58 in self.(root.t)) =&gt; (v58 in self.(root.t')))
                                                  (all v63 : Dir | (v63 in self.(wd.t')) =&gt; (v63 in self.(wd.t))) &amp;&amp; (all v68 : Dir | (v68 in self.(wd.t)) =&gt; (v68 in self.(wd.t')))}

pred cd [self : FileSystem,d : Dir,t,t' : Time] {d in self.(objects.t)
                                                 (all v76 : Dir | (v76 in self.(wd.t')) =&gt; (v76 = d)) &amp;&amp; (d in self.(wd.t'))
                                                 (all v82 : Object | (v82 in self.(objects.t')) =&gt; (v82 in self.(objects.t))) &amp;&amp; (all v87 : Object | (v87 in self.(objects.t)) =&gt; (v87 in self.(objects.t')))
                                                 (all v92 : Dir | (v92 in self.(root.t')) =&gt; (v92 in self.(root.t))) &amp;&amp; (all v97 : Dir | (v97 in self.(root.t)) =&gt; (v97 in self.(root.t')))}
~~~~~</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alcino Cunha</dc:creator><pubDate>Sun, 25 Mar 2012 20:18:13 -0000</pubDate><guid>https://sourceforge.net7eec69a5a2b1910f76003a5748f1b6e43ec1c9d5</guid></item></channel></rss>