Samband | |
---|---|
OCH | |
Venn diagram | |
Definition | |
sanningstabell | |
logisk port | |
normala former | |
Disjunktiv | |
konjunktival | |
Zhegalkin polynom | |
Medlemskap i förfullbordade klasser | |
Sparar 0 | Ja |
Sparar 1 | Ja |
Monoton | Ja |
linjär | Inte |
Självdubbel | Inte |
Konjunktion (från latin conjunctio - "förening, anslutning") är en logisk operation , i betydelsen så nära föreningen "och" som möjligt. Synonymer: logisk "OCH" , logisk multiplikation , ibland bara "OCH" [1] .
En konjunktion kan vara en binär operation (dvs ha två operander), en ternär operation (dvs ha tre operander) eller en n-är operation (dvs ha n operander).
Den vanligaste notationen för konjunktionsoperationen är:
(vid användning av en punkt som tecken på logisk multiplikation kan detta tecken, som i vanlig multiplikation i algebra , utelämnas: [1] ).
Samtidigt är notationen som rekommenderas av ISO 31-11-standarden den mest använda inom modern matematik och matematisk logik , där den dock konkurrerar med et- tecken & [1] ; den senare, som uppträdde på 1:a århundradet f.Kr. e. som en grafisk förkortning ( ligatur ) av latinets union et 'and', användes redan 1685 av Jacob och Johann Bernoulli som en logisk länk (i dem kopplade han dock inte påståenden , utan begrepp ) [2] [3] . George Boole (följt av andra pionjärer inom den systematiska tillämpningen av den symboliska metoden på logik: W. S. Jevons , E. Schroeder , P. S. Poretsky ) betecknade konjunktion med ett tecken - som vanlig multiplikation [4] . Symbolen ⋀ (omvänt disjunktionstecken ) som symbol för konjunktion föreslogs av Arend Heyting (1930) [5] .
Notationen ⋀för konjunktion användes också i det tidiga programmeringsspråket Algol 60 [6] . Men på grund av bristen på ett motsvarande tecken i standardteckenuppsättningarna ( till exempel i ASCII eller EBCDIC ) som används på de flesta datorer , tillhandahöll de mest använda programmeringsspråken andra notationer för konjunktionen. I Fortran IV respektive PL/I användes alltså beteckningarna .AND.och &(med möjlighet att ersätta den senare med nyckelordet AND ) [7] ; Pascal och Ada använder det reserverade ordet and[8] [9] ; språken C och C++ använder notationen &för bitvis konjunktion och &&för logisk konjunktion [10] ).
Slutligen, under den naturliga ordningen av sanningsvärdena för tvåvärdig logik (när det antas att ), visar det sig att sålunda visar sig konjunktionen vara ett specialfall av operationen att beräkna minimum ; detta öppnar upp det mest naturliga sättet att definiera funktion av konjunktion i system med många värden logik (även om ibland andra sätt att generalisera konjunktion övervägs - till exempel i fallet med k - värderad logik, där uppsättningen sanningsvärden representeras av det initiala segmentet av halvgruppen av naturliga tal ) [11] [12] .
Definition.
Den logiska funktionen MIN i tvåvärdig (binär) logik kallas konjunktion ( logisk "OCH" , logisk multiplikation eller helt enkelt "OCH" ).
Regel: Resultatet är lika med den minsta operanden.
Beskrivning.
I boolesk algebra är en konjunktion en funktion av två, tre eller flera variabler (de är också operander för en operation, de är också argument för en funktion). Variabler kan ta värden från en uppsättning . Resultatet hör också till uppsättningen . Resultatet beräknas enligt en enkel regel, eller enligt sanningstabellen . Istället för värden kan vilket annat par lämpliga tecken som helst användas, till exempel, eller eller "falskt", "sant", men med en sådan beteckning är det nödvändigt att ytterligare definiera tjänstgöring, till exempel , med digital beteckning, tjänstgöringstid är naturligt .
Regel: resultatet är , om alla operander är lika ; i alla andra fall är resultatet .
Sanningstabeller:
för binär konjunktion
för ternär konjunktion
0 | 0 | 0 | 0 |
ett | 0 | 0 | 0 |
0 | ett | 0 | 0 |
ett | ett | 0 | 0 |
0 | 0 | ett | 0 |
ett | 0 | ett | 0 |
0 | ett | ett | 0 |
ett | ett | ett | ett |
Konjunktionen är kommutativ , associativ och distributiv med avseende på den svaga disjunktionen [13] .
Operationen, som kallas konjunktion i binär logik , i flervärdslogik är vanligtvis associerad med minimioperationen : , där a är värdet på logik; men andra alternativ för att generalisera den vanliga konjunktionen till det värdesatta fallet är också möjliga. Som regel försöker man upprätthålla kompatibilitet med boolesk algebra för värdena för operanderna och .
Namnet på den här operationens minimum är vettigt i logik med vilket värde som helst, inklusive i binär logik, och namnen konjunktion , logisk "AND" , logisk multiplikation och helt enkelt "AND" är typiska för binär logik och används mindre ofta när man flyttar till flervärdiga logiker.
I den klassiska propositionskalkylen definieras egenskaperna för en konjunktion med hjälp av axiom . Den klassiska propositionskalkylen kan ges av olika system av axiom, och några av dem kommer att beskriva konjunktionens egenskaper. Ett av de vanligaste alternativen inkluderar 3 axiom för konjunktion:
Med hjälp av dessa axiom kan man bevisa andra formler som innehåller konjunktionsoperationen. Observera att i den klassiska propositionskalkylen beräknas resultatet inte från operandernas värden (som i boolesk algebra), utan det krävs för att bevisa formeln som helhet baserat på axiom och slutledningsregler.
Det logiska elementet som implementerar konjunktionsfunktionen kallas matchningskretsen [13] . Mnemonregeln för kombination med valfritt antal ingångar är: Utgången blir:
När det gäller mängdteorin är konjunktion analog med intersektionens funktion .
På datorspråk används två huvudversioner av konjunktionen: logisk "AND" och bitvis (bitvis) "AND". Till exempel, i C/C++-språk, betecknas en logisk AND med symbolen "&&", och en bitvis betecknas med symbolen "&". I den terminologi som används i C# kallas "&"-operationen logisk "AND", och operationen "&&" kallas villkorlig "AND" , eftersom operandernas värden är villkor för fortsättningen av beräkningen. På språken Pascal/Delphi betecknas båda typerna av konjunktion med nyckelordet " och " , och resultatet av åtgärden bestäms av typen av operander. Om operanderna är av boolesk typ (till exempel boolesk) utförs en logisk operation, om ett heltal (till exempel byte) är en bitvis operation.
Det logiska "AND" används i villkorliga hoppsatser eller i liknande fall när ett resultat eller krävs . Till exempel:
if ( a & b & c ) { /* vissa åtgärder */ };Jämförelsen i det här fallet kommer att fortsätta till slutet av uttrycket, oavsett de mellanliggande resultaten. Principen för det villkorliga "OCH" i en liknande situation:
a = falskt _ b = sant ; c = sant ; if ( a && b && c ) { /* vissa åtgärder */ };Verifieringen av sanningen av uttrycket i det här fallet kommer att sluta efter kontroll av variabeln a, eftersom ytterligare jämförelse inte är meningsfullt.
Resultatet blir lika om båda operanderna är lika (inte lika för numeriska typer ). I alla andra fall blir resultatet .
I det här fallet tillämpas standardkonventionen: om värdet på den vänstra operanden är lika med , beräknas inte värdet på den högra operanden (istället kan det finnas en komplex formel). Denna konvention påskyndar programexekveringen och är en användbar teknik i vissa fall. Delphi-kompilatorn stöder ett speciellt direktiv som inkluderar
{$B-}eller stänga av
{$B+}liknande beteende. Till exempel, om den vänstra operanden testar om den högra operanden kan utvärderas:
if ( a != 0 && b / a > 3 ) { /* vissa åtgärder */ };I det här exemplet, på grund av kontrollen på den vänstra operanden, kommer den högra operanden aldrig att dividera med noll.
Den bitvisa "AND" utför den vanliga booleska algebraoperationen på alla bitar av vänster och höger operand i par. Till exempel,
om | |
a = | |
b= | |
sedan | |
a och b = |
Likheten mellan konjunktion och konjunktion "och" i naturligt språk påpekas ofta. Det sammansatta påståendet " A och B " anses sant när både påståendena A och B är sant , annars är det sammansatta påståendet falskt. Detta motsvarar exakt definitionen av konjunktion i boolesk algebra, om "sant" betecknas med , och "falskt" med . Samtidigt görs ofta den vanliga naturliga tvetydighetsklausulen . Till exempel, beroende på sammanhanget, kan fackföreningen "och" ha en extra konnotation "och sedan", "och därför", "och sedan". Skillnaden mellan naturlig språklogik och matematisk logik uttrycktes kvickt av den amerikanske matematikern Stephen Kleene , och noterade att i naturligt språk är "Mary gifte sig och fick ett barn" inte detsamma som "Mary födde ett barn och gifte sig."
![]() |
---|
booleska operationer | |
---|---|
|
Logik | |||||||||
---|---|---|---|---|---|---|---|---|---|
Filosofi • Semantik • Syntax • Historia | |||||||||
Logiska grupper |
| ||||||||
Komponenter |
| ||||||||
Lista över booleska symboler |