Lean 4 er et kraftfuldt interaktivt bevisassistentværktøj, som giver mulighed for at formalisere matematiske begreber, sætninger og beviser. Dette kapitel omhandler de grundlæggende begreber og funktionaliteter i Lean 4, og hvordan man effektivt anvender det til at skrive matematik i en formel og struktureret form.

Når man arbejder med Lean, kan man tænke på det som en form for programmering, hvor man definerer matematiske objekter og operationer i et strengt, men letforståeligt sprog, som Lean kan analysere og evaluere. Lean tilbyder ikke kun syntaktisk feedback, men giver også en garanti for, at de matematiske udtryk er korrekt formuleret, og at beviserne er valide. Denne formalisering åbner døren til automatisk verifikation af matematiske resultater, hvilket er en stor fordel i mange områder af matematik og videnskab.

Formålet med Lean 4 er at gøre det muligt for både nybegyndere og erfarne matematikere at udtrykke og validere matematiske ideer ved hjælp af software. Dette kapitel dækker grundlæggende emner, der spænder fra de elementære begreber i talteori til de mere komplekse begreber inden for måleteori og analyse. I stedet for at forudsætte dybdegående kendskab til formelle metoder, sigter Lean 4 mod at gøre det lettere at lære og anvende matematik.

I begyndelsen af læringsprocessen vil du finde det nyttigt at installere både Lean 4 og Visual Studio Code (VS Code), som giver et ideelt miljø til at arbejde med Lean. Når du har installeret disse værktøjer, vil du kunne følge med i eksemplerne og øvelserne, der er knyttet til hver sektion i bogen, og skrive dine egne Lean-filer i et organiseret system.

I Lean 4 er det vigtigt at forstå den centrale rolle, som biblioteket Mathlib spiller. Mathlib er en omfattende samling af allerede formaliserede matematiske resultater og teoremer, som du kan bygge videre på. Det indeholder et væld af funktioner, der dækker et bredt spektrum af matematik, og som kan hjælpe dig med hurtigt at opnå praktisk erfaring med formalisering af matematik i Lean.

Derudover er det vigtigt at understrege, at Lean 4 arbejder tæt sammen med et fællesskab af brugere og udviklere. Lean's online chatgruppe på Zulip tilbyder et livligt og støttende miljø, hvor du kan få hjælp, stille spørgsmål og dele erfaringer med andre, der også arbejder med Lean.

Det er ikke kun i starten, men også undervejs i læringsprocessen, at det er essentielt at arbejde interaktivt. Lean tillader dig at udvikle dine ideer løbende og få feedback i realtid, hvilket skaber en dynamisk læringsoplevelse. Denne interaktivitet er ikke kun en teknisk funktion, men også en metodisk tilgang til at forstå og lære matematik.

I sidste ende bør læseren forstå, at Lean 4 ikke kun er et matematisk værktøj, men også en platform for at forstå den formelle struktur af matematiske beviser og begreber. At arbejde med Lean 4 giver en dybere indsigt i, hvordan matematik kan formaliseres og verificeres, hvilket åbner for nye måder at arbejde med matematik på, både i forskning og undervisning.

Hvordan Beviser Man Inklusioner og Ligheder i Mængdeteorien?

I mængdeteorien er det vigtigt at forstå de forskellige metoder, der anvendes til at bevise inklusioner og ligheder mellem mængder. Et typisk resultat i mængdeteorien er det, der beskrives ved mængdeoperationer som forenings- og skæringsoperationer. For at illustrere disse begreber kan vi se på, hvordan man beviser, at en skæring af en mængde med en union af to andre mængder er en delmængde af foreningen af disse skæringer.

Først ser vi på udtrykket s(tu)stsus \cap (t \cup u) \subseteq s \cap t \cup s \cap u. En sådan inklusion kan bevises ved at introducere et vilkårligt element xx og derefter vise, at det opfylder betingelserne for at være i den højre mængde. Efter at have antaget, at xs(tu)x \in s \cap (t \cup u), kan vi dekomponere xx i to tilfælde: enten xtx \in t eller xux \in u. I hvert tilfælde viser vi, at xx skal tilhøre enten sts \cap t eller sus \cap u, hvilket beviser inklusionen.

En alternativ metode til at bevise den samme inklusion er ved at bruge rintro-taktikken, som giver en mere kompakt og effektiv fremstilling af beviset. Ved at indføre xx og bruge de nødvendige skæringsoperationer, kan vi også hurtigt opnå den ønskede inklusion uden at skulle splitte op i flere tilfælde.

For at opnå den modsatte inklusion, dvs. stsus(tu)s \cap t \cup s \cap u \subseteq s \cap (t \cup u), er det nødvendigt at konstruere et bevis, der følger samme struktur som tidligere, men omvendt. En nyttig teknik i Lean for at håndtere komplekse logiske udtryk er at bruge passende parenteser for at sikre, at disjunktive mønstre bliver korrekt fortolket af systemet.

En anden vigtig teknik i mængdeteorien er forskellen mellem mængder, som også spiller en central rolle i at forstå samspillet mellem mængder. Udtrykket sts \setminus t betyder, at vi betragter mængden af alle elementer, der tilhører ss, men ikke tilhører tt. På samme måde kan vi også udtrykke forskellen mellem sts \setminus t og en tredje mængde uu, som vil give os en ny inklusion: (st)us(tu)(s \setminus t) \setminus u \subseteq s \setminus (t \cup u). Dette bevis kræver, at vi introducerer et vilkårligt element og viser, at det opfylder betingelserne for at være i den ønskede mængde. Ved at bruge tilfældesplitning og kontradiktion kan vi afslutte beviset effektivt.

Når vi arbejder med mængdeoperationer som skæring og forening, er det også vigtigt at forstå ekstensionalitet i mængdeteorien. Ekstensionalitet betyder, at to mængder er lige, hvis og kun hvis de indeholder præcis de samme elementer. I Lean kan vi anvende extext-taktikken til at bevise ligheden mellem to mængder ved at vise, at hver element i den ene mængde også er i den anden. Dette kan gøres på en meget effektiv måde ved at bruge simp, hvilket gør det muligt at simplificere udtrykket og hurtigt konkludere ligheden.

En af de mest nyttige identiteter i mængdeteorien er, at s(st)=ss \cap (s \cup t) = s. Denne identitet betyder, at skæringen af en mængde ss med foreningen af ss og en anden mængde tt simpelthen giver ss tilbage. At bevise dette kræver, at vi viser, at enhver element i den venstre mængde er i den højre mængde, og vice versa. Dette kan gøres ved at anvende de grundlæggende principper for mængdeteorien og simpliciteten i Lean’s system.

En anden vigtig idé er at kunne bruge mængdebyggernotation, som er en mere kompakt og funktionel måde at definere mængder på. For eksempel, når vi skriver {yPy}\{ y | P y \}, betyder det, at vi skaber en mængde af alle elementer yy, som opfylder en given betingelse PyP y. I Lean betyder udtrykket x{yPy}x \in \{ y | P y \}, at PxP x er sandt. På denne måde kan vi udtrykke mange komplekse mængdeoperationer på en meget præcis og effektiv måde.

For at arbejde med specifikke eksempler på naturlige tal, som de der definerer lige og ulige tal, kan vi bruge mængdebyggernotationen til at definere evensevens og oddsodds som mængder af henholdsvis lige og ulige tal. Det er også nyttigt at forstå, hvordan vi kan bruge sådanne definitioner til at bevise, at unionen af evensevens og oddsodds er lig med den universelle mængde univuniv, hvilket illustrerer, hvordan mængdeoperationer kan bruges til at konstruere komplekse logiske udsagn.

Endelig er det værd at bemærke, at Lean understøtter forskellige versioner af nogle prægningsteoremer, såsom primtalsprædikatet. I Lean defineres et primtal som et naturligt tal, der kun er delbart med 1 og sig selv. I nogle tilfælde kan vi bruge prædikatet Nat.PrimeNat.Prime til at udtrykke og manipulere primtal, og vi kan kombinere det med andre logiske udtryk for at udlede nye resultater. Dette understreger vigtigheden af at forstå de underliggende definitions- og bevismetoder i Lean, som gør det muligt at håndtere komplekse matematiske koncepter som primtal og mængder på en systematisk og effektiv måde.