Wolna zmienna
W matematyce i innych dyscyplinach, w tym w językach formalnych, w tym w logice matematycznej , zmienna wolna to notacja określająca, w których miejscach w wyrażeniu może nastąpić podstawienie. Jest to sprzeczne z pojęciem zmiennej fikcyjnej (zwanej również zmienną powiązaną ).
W programowaniu komputerowym zmienna wolna to zmienna, do której odwołuje się funkcja, która nie jest ani zmienną lokalną , ani parametrem tej funkcji.
Prezentacja
W matematyce
Sprawdzanie, czy (matematyczna) zmienna w terminie jest dowolna lub milcząca, sprowadza się do próby spełnienia jednego z trzech poniższych kryteriów:
-
Zastąp badaną zmienną inną pustą „literą” (która początkowo nie pojawia się w wyrażeniu). Jeśli otrzymamy wyrażenie synonimiczne, wówczas zmienna początkowa została powiązana (konwersja α);
-
Jeśli można znaleźć wyrażenie synonimiczne, w którym zmienna całkowicie zniknęła , to zmienna jest cicha;∫01xrex=12∑k=052k=20+21+22+23+24+25=63{\ displaystyle {\ begin {aligned} \ int _ {0} ^ {1} x {\ rm {d}} x & = {\ frac {1} {2}} \\\ suma _ {k = 0} ^ {5} {2 ^ {k}} & = 2 ^ {0} + 2 ^ {1} + 2 ^ {2} + 2 ^ {3} + 2 ^ {4} + 2 ^ {5} = 63 \ end {aligned}}}
-
Aby zlokalizować znak, który ucisza zmienną , mówimy wtedy o znakach mutujących .
∑x∈S∏x∈S∫0∞⋯rexlimx→0∀x∃xλxψx{\ Displaystyle \ sum _ {x \ in S} \ quad \ quad \ prod _ {x \ in S} \ quad \ quad \ int _ {0} ^ {\ infty} \ cdots {\ rm {d}} x \ quad \ quad \ lim _ {x \ to 0} \ quad \ quad \ forall x \ quad \ quad \ exist x \ quad \ quad \ lambda x \ quad \ quad \ psi x}![{\ Displaystyle \ sum _ {x \ in S} \ quad \ quad \ prod _ {x \ in S} \ quad \ quad \ int _ {0} ^ {\ infty} \ cdots {\ rm {d}} x \ quad \ quad \ lim _ {x \ to 0} \ quad \ quad \ forall x \ quad \ quad \ exist x \ quad \ quad \ lambda x \ quad \ quad \ psi x}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5ab8e678ab9ff6670d93cfcd269c8eec261dd8f8)
W rachunku lambda
Zauważmy , że zbiór zmiennych wolnych w rachunku lambda jest definiowany przez indukcję na składnikach λ:
faV(t){\ Displaystyle FV (t)}![{\ Displaystyle FV (t)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/db538b665170e518a35cf5541235114bc20af0b8)
faV(x)={x}{\ Displaystyle FV (x) = \ {x \}}
faV(tu)=faV(t)∪faV(u){\ Displaystyle FV (tu) = FV (t) \ puchar FV (u)}
faV(λx.t)=faV(t)∖{x}.{\ Displaystyle FV (\ lambda xt) = FV (t) \ setminus \ {x \}.}
Wydajne zmienne wolne
Matematyczne pojęcie zmiennej efektywnej udoskonala pojęcie zmiennej swobodnej. Wolna zmienna jest „nieefektywna” gdy znaczenie wyrażenia, w którym występuje, nie zależy od znaczenia obiektu, który tworzy instancję tej zmiennej.
Zmienna x wyrażenia x = x jest „nieefektywna”, ponieważ x jest zmienną wolną (ponieważ nie ma znaku mutującego), ale instrukcja pozostaje prawdziwa niezależnie od obiektu oznaczonego przez x .
Następujące wyrażenie rzeczywiście ma dla x , efektywną zmienną wolną : x + 1 = 0.
Przykłady
W matematyce
W wyrażeniu
∀x,fa(x)=fa(y){\ Displaystyle \ forall x, fa (x) = f (y)}![{\ Displaystyle \ forall x, fa (x) = f (y)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/45635b496df15ef0c048c3fd76a3106c693c8be3)
zmienna nie jest wolna (mówimy, że jest połączona), podczas gdy zmienna jest wolna. W wyrażeniu
x{\ displaystyle x}
y{\ displaystyle y}![y](https://wikimedia.org/api/rest_v1/media/math/render/svg/b8a6208ec717213d4317e666f1ae872e00620a0d)
∫01z2xrez{\ displaystyle \ int _ {0} ^ {1} z ^ {2} xdz}![{\ displaystyle \ int _ {0} ^ {1} z ^ {2} xdz}](https://wikimedia.org/api/rest_v1/media/math/render/svg/dbe0e718bd3fcf9a99998f043f5db1a3d70d9715)
zmienna jest związana, a zmienna jest wolna. W poniższym wyrażeniu x jest zmienną fikcyjną, ale y jest zmienną wolną, ponieważ „mówimy” o y .
z{\ displaystyle z}
x{\ displaystyle x}![x](https://wikimedia.org/api/rest_v1/media/math/render/svg/87f9e315fd7e2ba406057a97300593c4802b53e4)
∫0∞xy-1mi-xrex.{\ Displaystyle \ int _ {0} ^ {\ infty} x ^ {y-1} {\ rm {e}} ^ {- x} {\ rm {d}} x.}![{\ Displaystyle \ int _ {0} ^ {\ infty} x ^ {y-1} {\ rm {e}} ^ {- x} {\ rm {d}} x.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/830a8b13d964e78d1fdf4832e7a5c55248a3f448)
W obliczeniach lambda
W funkcji zmienne i są połączone, natomiast zmienna jest wolna. W rzeczy samej,
λu.λt.(uvt){\ displaystyle \ lambda u. \ lambda t. (uvt)}
u{\ displaystyle u}
t{\ displaystyle t}
v{\ displaystyle v}![v](https://wikimedia.org/api/rest_v1/media/math/render/svg/e07b00e7fc0847fbd16391c778d65bc25c452597)
faV(uvt)=faV(u)∪faV(v)∪faV(t)={u,v,t}{\ Displaystyle FV (uvt) = FV (u) \ puchar FV (v) \ cup FV (t) = \ {u, v, t \}}![{\ Displaystyle FV (uvt) = FV (u) \ puchar FV (v) \ cup FV (t) = \ {u, v, t \}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/319b9f08f1f46938f421b6ace0da9e2e71d0ec55)
a więc
faV(λu.λt.(uvt))=faV(λt.(uvt))∖{u}=faV(uvt)∖{u}∖{t}{\ displaystyle FV (\ lambda u. \ lambda t. (UVT)) = FV (\ lambda t. (UVT)) \ setminus \ {u \} = FV (UVT) \ setminus \ {u \} \ setminus \ {t \}}
={u,v,t}∖{u}∖{t}={v}.{\ Displaystyle \ qquad \ qquad \ qquad \ quad = \ {u, v, t \} \ setminus \ {u \} \ setminus \ {t \} = \ {v \}.}
Uwagi i odniesienia
(fr) Ten artykuł jest częściowo lub w całości zaczerpnięty z artykułu w Wikipedii w
języku angielskim zatytułowanego
„ Wolne zmienne i zmienne powiązane ” ( zobacz listę autorów ) .
-
„ Kurs logiki - notatki z kursu logiki prowadzonego przez René Cori ” [PDF] , na Académie de La Réunion ,grudzień 2009.
Zobacz też
<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">