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]
NULkajUNU- La funkcioj
NULkajUNUignoras 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) => !xaŭ 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Ŭ]
NULkajUNU- 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. IDxkajIDy- La idento-funkcioj
IDxkajIDyignoras unu el siaj argumentoj kaj funkcias kiel unuargumenta idento sur la argumento x respektive y. NExkajNEy- 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. SPxkajSPy- Ĉ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 realigiSPxper(x,y) => x && !yaŭ per(x,y) => x > y. KAJkajNKAJ- 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 && yaŭ 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 > 0aŭ 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. IMPLkajREPL- 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. EKVkajXAŬ- 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^yaŭ 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}}\).