1 - Logikaj funkcioj
Tio ĉi estas epitoma laborfolio, ne lernolibro, nek deviga terminaro aŭ kompleta kompendio. Mi tie ĉi notis informojn pri nocioj, kiujn mi iam devis lerni por ekzameno.
Logikaj funkcioj
En la klasika logiko oni laboras nur per du diversaj valoroj: vera kaj malvera, aŭ 0 kaj 1.
Logikaj funkcioj bildigas variablojn, kiuj havas unu el du valoroj, al tiuj du valoroj denove.
Ekzemple NE
estas unuargumenta logika funkcio, kiu bildigas 0 al 1 kaj 1 al 0,
oni ĝin signas per superstreketo: \(\overline{0}=1\). Duargumentaj, logikaj
funkcioj estas KAJ
kaj AŬ
.
Ekzistas kvar unu-argumentaj logikaj funkcioj:
[NUL] [UNU] [ID] [NE]
NUL
kajUNU
- La funkcioj
NUL
kajUNU
ignoras la argumenton kaj ĉiam rezultas en 0 (malvera) respektive 1 (vera). Do efektive ili povas esti konsiderataj kiel senargumentaj funkcioj. Cetere oni nomas esprimon, kiu ĉiam estas malvera kontraŭdiro (\(\bot\)). Esprimon ĉiam veran oni ankaŭ nomas taŭtologio (\(\top\)). ID
- La funkcio
ID
(idento) ĉiam redonas la argumenton senŝanĝe. NE
- La funkcio
NE
- neg(aci)o, ĉiam redonas la kontraŭon de la argumento. Oni povas signi ĝin per \(\lnot\), sed ni ĉi tie uzas alternative la superstrekon, kiu koncizigas esprimon kun pluraj aplikaj de funkcioNE
. En programlingvo oni povas realigi ĝin per(x) => !x
aŭ per(x) => 1-x
.
x | f(x) |
---|---|
0 | |
1 |
Entute ekzistas 16 diversaj du-argumentaj logikaj funkcioj, jen elekto:
[NUL] [UNU] [IDx] [NEx] [IDy] [NEy] [SPx] [SPy] [KAJ] [NKAJ] [AŬ] [NEK] [IMPL] [REPL] [EKV] [XAŬ]
NUL
kajUNU
- La duargumentaj funkcioj
NUL
(kontraŭdiro) kajUNU
(taŭtologio) ne dependas de siaj argumentoj. Ni jam pritraktis ilin sub la unuargumentaj. Ili aperas tie ĉi pro kompleteco. IDx
kajIDy
- La idento-funkcioj
IDx
kajIDy
ignoras unu el siaj argumentoj kaj funkcias kiel unuargumenta idento sur la argumento x respektive y. NEx
kajNEy
- La neaj funkcioj
NEx
(\(\overline{x}\)) kajNEy
(\(\overline{y}\)) ignoras unu el siaj argumentoj kaj funkcias kiel unuargumenta negacio sur la argumento x respektive y. SPx
kajSPy
- Ĉe la funkcio
SPx
(subpremo de x, alinome inhib(ici)o de x), la argumento y, se vera, subpremas, t.e. nuligas, malverigas, la valoron de x. La funkcioSPy
(subpremo de y) inversigas la rolon de ambaŭ argumentoj. En programlingvo oni povas realigiSPx
per(x,y) => x && !y
aŭ per(x,y) => x > y
. KAJ
kajNKAJ
- La funkcio
KAJ
(konjunkcio, AND) estas vera nur, se ambaŭ argumentoj estas veraj. Ni simboligas ĝin per la kutima signo \(\land\). En programlingvo oni povas realigi ĝin per(x,y) => x && y
aŭ per(x,y) => x*y
. - La funkcio
NKAJ
(ekskludo, malkaj, ankaŭ NAND aŭ Ŝeferfunkcio laŭ Henry Maurice Sheffer) estas ĉiam vera, krom se ambaŭ argumentoj estas veraj. Alivorte ĝi estas la negacio deKAJ
. Oni povas simboligi ĝin per \(x\mid y\) aŭ \(x\barwedge y\). En programlingvo oni povas realigi ĝin per(x,y) => ! (x && y)
aŭ(x,y) => 1 - x*y
. AŬ
kajNEK
- La funkcio
AŬ
(inkluziva disjunkcio, OR) estas vera, se alemanŭ unu el ĝiaj argumentoj estas vera. Ni simboligas ĝin per la kutima signo \(\lor\). En programlingvo oni povas realigi ĝin per(x,y) => x || y
,(x,y) => x+y > 0
aŭ per(x,y) => x + y - x*y
. - La funkcio
NEK
(NOR, nihilo, funkcio de Peirce) estas vera nur, se nek x nek y estas veraj. Ĝia simbolo estas \(⊽\) kaj oni povas programlingve realigi ĝin per(x,y) => !(x||y)
aŭ(x,y) => x+y == 0
. IMPL
kajREPL
- La funkcio
IMPL
(implico) estas malvera nur, se x estas vera, sed y estas malvera: Se pluvas, mi ĉiam restas hejme. Oni simboligas ĝin per \(\implies\) kaj programlingve povas esprimi ĝin per(x,y) => x<=y
. - La funkcio
REPL
(inversa implico, reimplico, replikacio) estas malvera, se y estas vera, sed ne x: Nur se estas bela vetero (x), foje mi promenas (y). Do x esprimas necesan kondiĉon, por ke y estu vera. Oni uzas la simbolon \(\Leftarrow\) kaj realigas ĝin en programo ekzemple per(x,y) => x>=y
. EKV
kajXAŬ
- La funkcio
EKV
(XNOR, NXOR, XAND, ekvivalento, duobla implico) estas vera nur, se ambaŭ x kaj y havas la saman valoron. Oni uzas la simbolon \(\iff\) aŭ \(\odot\) kaj programlingve esprimas ĝin per(x,y) => x==y
. - La funkcio
XAŬ
(ekskluziva disjunkcio, XOR) estas vera, se nur unu el ambaŭ argumento estas vera. Ĝia simbolo estas \(\oplus\) aŭ \(\veebar\) kaj oni povas programlingve realigi ĝin per(x,y) => x^y
aŭ per(x,y) => x != y
.
x | y | f(x,y) |
---|---|---|
0 | 0 | |
0 | 1 | |
1 | 0 | |
1 | 1 |
Supermetado de funkcioj
Oni per supermetado de logikaj funkcioj povas ricevi novajn. Ekzemple oni povas ricevi la logikan funkcion
KAJ
per supermetado de la du funkcioj NE
kaj AŬ
: \(x \lor y = \overline{\overline{x} \land \overline{y}}\).