Konjunktion | |
---|---|
OG | |
| |
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).
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] .
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] .
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.
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.
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:
Med hensyn til mængdeteori er konjunktion analog med operationen af skæringspunktet .
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 = |
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."
I bibliografiske kataloger |
---|
booleske operationer | |
---|---|
|
Logikker | |||||||||
---|---|---|---|---|---|---|---|---|---|
Filosofi • Semantik • Syntaks • Historie | |||||||||
Logiske grupper |
| ||||||||
Komponenter |
| ||||||||
Liste over booleske symboler |