Konjunktion

Konjunktion
OG

Venn diagram
Definition
sandhedstabel
logisk port
normale former
Disjunktiv
konjunktival
Zhegalkin polynomium
Medlemskab af prækompletterede klasser
Sparer 0 Ja
Sparer 1 Ja
Monotone Ja
lineær Ikke
Selv-dual Ikke

Konjunktion (fra latin  conjunctio  - "forening, forbindelse") er en logisk operation , i betydningen så tæt som muligt på foreningen "og". Synonymer: logisk "AND" , logisk multiplikation , nogle gange bare "AND" [1] .

En konjunktion kan være en binær operation (dvs. have to operander), en ternær operation (dvs. have tre operander) eller en n-ær operation (dvs. have n operander).

Notation

Den mest almindelige notation for konjunktionsoperationen er:

(ved brug af en prik som tegn på logisk multiplikation, kan dette tegn, som i almindelig multiplikation i algebra , udelades: [1] ).

Samtidig er notationen anbefalet af ISO 31-11 standarden den mest udbredte i moderne matematik og matematisk logik , hvor den dog konkurrerer med og-tegnet & [1] ; sidstnævnte, optræder i det 1. århundrede f.Kr. e. som en grafisk forkortelse ( ligatur ) af den latinske union et 'and', blev allerede brugt af Jacob og Johann Bernoulli i 1685 som et logisk led (i dem forbandt han dog ikke udsagn , men begreber ) [2] [3] . George Boole (efterfulgt af andre pionerer inden for den systematiske anvendelse af den symbolske metode til logik: W. S. Jevons , E. Schroeder , P. S. Poretsky ) betegnede konjunktion med et tegn  - som almindelig multiplikation [4] . Symbolet (omvendt disjunktionstegn ) som symbol for konjunktion blev foreslået af Arend Heyting (1930) [5] .

Notationen ⋀for konjunktion blev også brugt i det tidlige programmeringssprog Algol 60 [6] . Men på grund af manglen på et tilsvarende tegn i standardtegnsættene ( for eksempel i ASCII eller EBCDIC ) brugt på de fleste computere , gav de mest udbredte programmeringssprog andre notationer til konjunktionen. I henholdsvis Fortran IV og PL/I blev betegnelserne .AND.og således brugt &(med mulighed for at erstatte sidstnævnte med nøgleordet AND ) [7] ; Pascal og Ada bruger det reserverede ord and[8] [9] ; C- og C++-sprogene bruger notationen &for bitvis konjunktion og &&for logisk konjunktion [10] ).

Endelig, under den naturlige rækkefølge af sandhedsværdierne af to-værdi logik (når det antages at ), viser det sig , at konjunktionen viser sig at være et særligt tilfælde af operationen med at beregne minimum ; dette åbner op for den mest naturlige måde at definere driften af ​​konjunktion i systemer med mange -værdi logik (selvom nogle gange andre måder at generalisere konjunktion overvejes - for eksempel i tilfælde af k -værdi logik, hvor sættet af sandhedsværdier er repræsenteret ved det indledende segment af halvgruppen af ​​naturlige tal ) [11] [12] .

Boolean algebra

Definition.
Den logiske funktion MIN i to-værdi (binær) logik kaldes konjunktion ( logisk "AND" , logisk multiplikation eller blot "AND" ).

Regel: Resultatet er lig med den mindste operand.

Beskrivelse.
I boolsk algebra er en konjunktion en funktion af to, tre eller flere variable (de er også operander af en operation, de er også argumenter for en funktion). Variabler kan tage værdier fra et sæt . Resultatet hører også til sættet . Resultatet beregnes efter en simpel regel, eller efter sandhedstabellen . I stedet for værdier kan ethvert andet par passende tegn bruges, for eksempel eller eller "falsk", "sand", men med en sådan betegnelse er det nødvendigt yderligere at definere anciennitet, for eksempel, med digital betegnelse, anciennitet er naturligt . Regel: resultatet er , hvis alle operander er ens ; i alle andre tilfælde er resultatet .

Sandhedstabeller:
for binær konjunktion

for ternær konjunktion

0 0 0 0
en 0 0 0
0 en 0 0
en en 0 0
0 0 en 0
en 0 en 0
0 en en 0
en en en en


Konjunktionen er kommutativ , associativ og distributiv med hensyn til den svage disjunktion [13] .

Flerværdilogik

Operationen, kaldet konjunktion i binær logik , i flerværdilogik er normalt forbundet med minimumsoperationen : , hvor a  er værdien af ​​logik; dog er andre muligheder for at generalisere den sædvanlige konjunktion til det sætværdierede tilfælde også mulige. Som regel forsøger man at opretholde kompatibilitet med boolsk algebra for værdierne af og operander .

Navnet på denne operation minimum giver mening i logikker med enhver værdi, inklusive i binær logik, og navnene konjunktion , logisk "AND" , logisk multiplikation og simpelthen "AND" er typiske for binær logik og bruges sjældnere, når man flytter til flerværdilogikker.

Klassisk logik

I den klassiske propositionelregning er egenskaberne af en konjunktion defineret ved hjælp af aksiomer . Den klassiske sætningsregning kan gives af forskellige aksiomer, og nogle af dem vil beskrive konjunktionens egenskaber. En af de mest almindelige muligheder inkluderer 3 aksiomer for konjunktion:


Ved hjælp af disse aksiomer kan man bevise andre formler, der indeholder konjunktionsoperationen. Bemærk venligst, at i den klassiske propositionelregning beregnes resultatet ikke ud fra værdierne af operanderne (som i boolsk algebra), men det er påkrævet at bevise formlen som helhed baseret på aksiomer og inferensregler.

Kredsløb

Det logiske element, der implementerer konjunktionsfunktionen, kaldes matchkredsløbet [13] . Mnemonreglen for sammenhæng med et vilkårligt antal input er: Outputtet vil være:

Mængde teori

Med hensyn til mængdeteori er konjunktion analog med operationen af ​​skæringspunktet .

Programmering

På computersprog bruges to hovedversioner af konjunktionen: logisk "AND" og bitvis (bitvis) "AND". For eksempel, i C/C++ sprog, er en logisk OG betegnet med symbolet "&&", og en bitvis  betegnes med symbolet "&". I den terminologi, der bruges i C# , kaldes "&"-operationen logisk "AND", og operationen "&&" kaldes betinget "AND" , fordi operandernes værdier er betingelser for fortsættelsen af ​​beregningen. På Pascal/Delphi-sprog er begge typer konjunktioner angivet ved hjælp af " og " nøgleordet , og resultatet af handlingen bestemmes af typen af ​​operander. Hvis operanderne er af boolesk type (for eksempel boolesk), udføres en logisk operation, hvis et heltal (for eksempel byte) er en bitvis operation.

Det logiske "AND" bruges i betingede jump-sætninger eller i lignende tilfælde, når et resultat eller er påkrævet . For eksempel:

if ( a & b & c ) { /* nogle handlinger */ };

Sammenligningen i dette tilfælde vil fortsætte indtil slutningen af ​​udtrykket, uanset de mellemliggende resultater. Princippet om den betingede "OG" i en lignende situation:

a = falsk _ b = sand ; c = sand ; if ( a && b && c ) { /* nogle handlinger */ };

Verifikationen af ​​udtrykkets sandhed i dette tilfælde stopper efter kontrol af variablen a, da yderligere sammenligning ikke giver mening.

Resultatet vil være ens, hvis begge operander er ens (ikke ens for numeriske typer ). I alle andre tilfælde vil resultatet være .

I dette tilfælde anvendes standardkonventionen: Hvis værdien af ​​venstre operand er lig med , beregnes værdien af ​​højre operand ikke (i stedet kan der være en kompleks formel). Denne konvention fremskynder programudførelsen og er en nyttig teknik i nogle tilfælde. Delphi-kompileren understøtter et særligt direktiv, der inkluderer

{$B-}

eller slukke

{$B+}

lignende adfærd. For eksempel, hvis den venstre operand tester, om den højre operand kan evalueres:

if ( a != 0 && b / a > 3 ) { /* nogle handlinger */ };

I dette eksempel, på grund af markeringen på venstre operand, vil den højre operand aldrig dividere med nul.

Det bitvise "AND" udfører den sædvanlige booleske algebraoperation på alle bits af venstre og højre operand i par. For eksempel,

hvis
a =
b=
derefter
a og b =

Forholdet til naturligt sprog

Der peges ofte på ligheden mellem konjunktion og konjunktion "og" i naturligt sprog. Det sammensatte udsagn " A og B " anses for sandt, når både udsagn A og B er sandt , ellers er det sammensatte udsagn falsk. Dette svarer nøjagtigt til definitionen af ​​konjunktion i boolsk algebra, hvis "sand" er angivet med , og "falsk" med . Samtidig laves ofte standardklausulen om naturlig sproglig tvetydighed . For eksempel, afhængigt af konteksten, kan fagforeningen "og" have en yderligere konnotation "og derefter", "og derfor", "og derefter". Forskellen mellem naturlig sproglogik og matematisk logik blev vittigt udtrykt af den amerikanske matematiker Stephen Kleene , der bemærkede, at i naturligt sprog er "Mary gifted and had a baby" ikke det samme som "Mary fødte en baby og blev gift."

Se også

Noter

  1. 1 2 3 Kondakov, 1975 , s. 264-266, 534-536.
  2. Ampersand . // Hjemmeside Online Etymologiordbog . Hentet 7. februar 2016. Arkiveret fra originalen 18. februar 2011.
  3. Kondakov, 1975 , s. 67.
  4. Styazhkin N. I. . Dannelse af matematisk logik. — M .: Nauka , 1967. — 508 s.  - S. 321, 348, 352, 368.
  5. Tidligste brug af symboler i mængdeteori og logik . // Website Jeff Millers websider . Dato for adgang: 7. februar 2016. Arkiveret fra originalen 21. august 2011.
  6. Kondakov, 1975 , s. tredive.
  7. Pratt T. Programmeringssprog: udvikling og implementering. — M .: Mir , 1979. — 574 s.  - S. 352, 439.
  8. Grogono P. . Programmering i Pascal. — M .: Mir , 1982. — 384 s.  - S. 51.
  9. Wegner P. . Programmering i Ada-sproget. — M .: Mir , 1983. — 240 s.  - S. 68.
  10. Ellis M. , Stroustrup B.  . En referencevejledning til C++ programmeringssproget med kommentarer. — M .: Mir , 1992. — 445 s. — ISBN 5-03-002868-4 .  - S. 65, 86-87.
  11. Yablonsky S. V.  . Introduktion til diskret matematik. — M .: Nauka , 1979. — 272 s.  - S. 9-10, 37.
  12. Rvachev V. L.  . Teori om R -funktioner og nogle af dens anvendelser. - Kiev: Naukova Dumka , 1982. - 552 s.  - S. 38, 66.
  13. 1 2 Dictionary of Cybernetics. 2. udg. / Ed. V. S. Mikhalevich. - Kiev: Ukrainian Soviet Encyclopedia , 1989. - 751 s. - ISBN 5-88500-008-5 .

Litteratur