Disjunktion

Disjunktion
ELLER

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

Disjunktion (fra lat.  disjunctio  - "disjunktion"), logisk tilføjelse , logisk ELLER , herunder ELLER ; nogle gange er bare OR  en logisk operation , i dens anvendelse så tæt som muligt på foreningen "eller" i betydningen "enten dette eller det, eller begge dele på én gang" [1] .

En disjunktion kan enten være binær (med to operander) eller -ær (der har operander) for en vilkårlig .

Indtastningen kan være præfiks  - operationstegnet kommer før operanderne ( polsk notation ), infix  - operationstegnet kommer mellem operanderne, eller postfix  - operationstegnet kommer efter operanderne. Når antallet af operander er mere end to, er præfiks- og postfix-notationer mere økonomiske.

Notation

Den mest almindelige notation for disjunktionsoperationen er:

|| |

Samtidig er notationen anbefalet af den internationale standard ISO 31-11 den mest udbredte i moderne matematik og matematisk logik [2] . Det dukkede ikke op med det samme: George Boole , der lagde grunden til den systematiske anvendelse af den symbolske metode til logik, arbejdede ikke med disjunktion (brugte i stedet streng disjunktion , som han betegnede med et + -tegn ), og William Jevons foreslog tegnet til adskillelse . Ernst Schroeder og P. S. Poretsky brugte igen tegnet + , men i forhold til den sædvanlige disjunktion [3] . Symbolet som betegnelse for disjunktion forekommer først i artiklen "Matematisk logik baseret på teorien om typer" [4] af Bertrand Russell (1908); det er afledt af lat. vel , som betyder "eller" [5] [6] . ·|·  

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

Endelig, under den naturlige rækkefølge af sandhedsværdierne af to-værdi logik (når det antages at ), viser det sig , at disjunktionen viser sig at være et særligt tilfælde af operationen med at beregne maksimum ; dette åbner op for den mest naturlige måde at definere disjunktionsoperationen i systemer med mange -værdilogik [12] [13] .

Boolean algebra

Den logiske funktion MAX i to-værdi (binær) logik kaldes disjunktion ( logisk "ELLER" , logisk addition eller blot "ELLER" ). Resultatet er lig med den største operand.

I boolsk algebra er en disjunktion en funktion af to, tre eller flere variable (de er også operander af en operation, de er også argumenter for en funktion). Resultatet er således , hvis alle operander er ens ; i alle andre tilfælde er resultatet .

sandhedstabel

Sandhedstabel for ternær (tre operander) disjunktion:

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

Flerværdilogik

Operationen, kaldet disjunktion i binær logik , kaldes maksimum i flerværdilogik : , hvor , a  er værdien af ​​logik. Andre muligheder er mulige[ hvad? ] . Som regel forsøger de at opretholde kompatibilitet med boolsk algebra for værdierne af operanderne .

Navnet på denne operation maksimum giver mening i logikker med enhver værdi, inklusive i binær logik, og navnene disjunktion , logisk "ELLER" , logisk addition og simpelthen "ELLER" er karakteristiske for binær logik og bruges sjældnere, når man flytter til flerværdilogikker.

Klassisk logik

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

Disse aksiomer kan bruges til at bevise andre formler, der indeholder disjunktionsoperationen. 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

Mnemonreglen for disjunktion med et vilkårligt antal input er: Outputtet vil være:

Mængde teori

Med hensyn til mængdeteori er disjunktion analog med driften af ​​union .

Programmering

På computersprog er der to hovedvarianter af disjunktion: logisk "ELLER" og bitvis "ELLER". For eksempel i C/C++/Perl/PHP er logisk "ELLER" angivet med symbolet "||", og bitvist "ELLER" med symbolet "|". På Pascal/Delphi-sprog er begge slags disjunktioner angivet ved hjælp af " eller " nøgleordet , og resultatet af operationen 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 "ELLER" bruges i betingede springoperatorer eller i lignende tilfælde, når et resultat eller er påkrævet . For eksempel:

hvis ( a || b ) { /* nogle handlinger */ };

Resultatet vil være ens, hvis begge operander er ens eller . 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 kontrollerer, om den højre operand skal evalueres:

if ( a == NULL || a -> x == 0 ) { /* nogle handlinger */ };

I dette eksempel, på grund af afkrydsningen på venstre operand, vil der aldrig forekomme en nul pointer-dereference på den højre operand.

Den bitvise OR udfører den sædvanlige boolske algebraoperation på alle bits af venstre og højre operand i par. For eksempel,

hvis
a =
b=
derefter
a ELLER b =

Forholdet til naturligt sprog

Ligheden mellem disjunktion og konjunktionen "eller" i naturligt sprog bliver ofte påpeget, når den bruges i betydningen "enten dette eller det eller begge dele på én gang." I juridiske dokumenter skriver de ofte: "og (eller)", nogle gange "og/eller", hvilket betyder "enten dette eller det eller begge dele på én gang." Det sammensatte udsagn "A og/eller B" betragtes som falsk, når både udsagn A og B er falsk, ellers er det sammensatte udsagn sandt. Dette svarer nøjagtigt til definitionen af ​​disjunktion i boolsk algebra, hvis "sand" er angivet med , og "falsk" med .

Tvetydigheden af ​​naturligt sprog ligger i det faktum, at foreningen "eller" bruges i to betydninger: enten for at betegne disjunktion, så for en anden operation - streng disjunktion ( eksklusiv "ELLER" ).

Se også

Noter

  1. Gutnikov V. S. . Integreret elektronik i måleinstrumenter. - L .: Energi , 1974. - 144 s.  - S. 14-16.
  2. Kondakov, 1975 , s. 534.
  3. Styazhkin N. I. . Dannelse af matematisk logik. — M .: Nauka , 1967. — 508 s.  - S. 320, 349, 352, 368.
  4. Russell B.  Matematisk logik baseret på teorien om typer  // American Journal of Mathematics . - 1908. - Bd. 30, nr. 3. - S. 222-262.
  5. Tidligste brug af symboler i mængdeteori og logik . // Website Jeff Millers websider . Hentet 5. februar 2016. Arkiveret fra originalen 20. februar 1999.
  6. Kondakov, 1975 , s. 149-150.
  7. Kondakov, 1975 , s. tredive.
  8. Pratt T. Programmeringssprog: udvikling og implementering. — M .: Mir , 1979. — 574 s.  - S. 352, 439.
  9. Grogono P. . Programmering i Pascal. — M .: Mir , 1982. — 384 s.  - S. 51.
  10. Wegner P. . Programmering i Ada-sproget. — M .: Mir , 1983. — 240 s.  - S. 68.
  11. 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.
  12. Yablonsky S. V.  . Introduktion til diskret matematik. — M .: Nauka , 1979. — 272 s.  - S. 9-10, 37.
  13. Rvachev V. L.  . Teori om R -funktioner og nogle af dens anvendelser. - Kiev: Naukova Dumka , 1982. - 552 s.  - S. 38, 66.

Litteratur