diff --git a/6_number.jl b/6_number.jl index 194e33f70a1941f7f81cf408993685cbe296ecd9..a198f89ccb0a26616d5d84d949aa4fa182c2f5cf 100644 --- a/6_number.jl +++ b/6_number.jl @@ -1,5 +1,5 @@ ### A Pluto.jl notebook ### -# v0.19.46 +# v0.20.0 using Markdown using InteractiveUtils @@ -23,6 +23,9 @@ include("utils.jl") # â•”â•â•¡ 736307ec-a2a4-11ef-0f85-ad1a0093e06a md"# La théorie des nombres" +# â•”â•â•¡ bbc907b1-63f8-435a-badc-11ed88bd6cf5 +frametitle("Exemples") + # â•”â•â•¡ cbabee34-2ca2-4ad4-93ba-2ec3c941da5e md""" Si tous les mois avaient 30 jours, est-ce qu'il y a des jours de la semaine qui ne seront jamais le premier du mois ? @@ -39,7 +42,7 @@ frametitle("Théorème de Bézout") # â•”â•â•¡ 08b18315-c28e-44ed-beb2-5b17421b0224 md""" -> **Définition** Le *Greatest Common Divisor (GCD)* de deux nombres ``a \in \mathbb{Z}`` et ``b \in \mathbb{Z}``, noté ``\text{gcd}(a, b)`` est le plus grand nombre ``g \in \mathbb{Z}`` qui divise ``a`` et ``b``. C'est à dire qu'il existe ``x \in \mathbb{Z}`` tel que ``a = gx`` et ``y \in \mathbb{Z}`` tel que ``b = gy``. En notation modulaire, ``a \equiv 0 \pmod{g}`` et ``b \equiv 0 \pmod{g}``. +> **Définition** Le *Greatest Common Divisor (GCD)* de deux nombres ``a \in \mathbb{Z}`` et ``b \in \mathbb{Z}``, noté ``\text{gcd}(a, b)`` est le plus grand nombre ``g \in \mathbb{Z}`` qui divise ``a`` (noté ``g \mid a``) et ``b`` (noté ``g \mid b``). C'est à dire qu'il existe ``x \in \mathbb{Z}`` tel que ``a = gx`` et ``y \in \mathbb{Z}`` tel que ``b = gy``. En notation modulaire, ``a \equiv 0 \pmod{g}`` et ``b \equiv 0 \pmod{g}``. > **Théorème de Bézout** Il existe ``x, y \in \mathbb{Z}`` tels que ``ax + by = c`` si et seulement si ``\text{gcd}(x, y)`` divise ``c``. En notation modulaire ``ax \equiv c \pmod{b}`` et ``by \equiv c \pmod{a}``. """ @@ -108,26 +111,110 @@ function pgcd(a, b) end # â•”â•â•¡ 1a4da418-147f-46f4-9b95-7955183aa5cf -md"a = $(@bind a Slider(1:typemax(Int32), default=90284599, show_value = true))" +md"`gcd_a` = $(@bind gcd_a Slider(1:typemax(Int32), default=90284599, show_value = true))" # â•”â•â•¡ f39cccac-5b24-46e4-8749-1b0a944542ef -md"b = $(@bind b Slider(1:typemax(Int32), default=249357461, show_value = true))" +md"`gcd_b` = $(@bind gcd_b Slider(1:typemax(Int32), default=249357461, show_value = true))" # â•”â•â•¡ fe2af566-4a8b-4052-9915-85266ee5ce98 -pgcd(a, b) +pgcd(gcd_a, gcd_b) # â•”â•â•¡ 03e49669-cdee-4241-862d-33ee91214455 md"The complexity is difficult to evaluate but can be shown to be ``O(\log(\min(a, b)))``." +# â•”â•â•¡ 0ee6972c-5069-4ba0-887f-be64c7d000d0 +frametitle("Arithmétique modulaire : somme") + +# â•”â•â•¡ f4f49568-dcf2-4c76-ba66-065d2fda7a4a +md""" +```math +a \equiv \alpha \pmod{n} \quad b \equiv \beta \pmod{n} +\quad \Rightarrow \quad a + b \equiv \alpha + \beta \pmod{n} +``` +""" + +# â•”â•â•¡ 09f44611-ba21-4982-ba1b-0691124642fc +frametitle("Arithmétique modulaire : produit") + +# â•”â•â•¡ 642d545f-b1b9-49da-8a03-ad63e3214f59 +md""" +```math +a \equiv \alpha \pmod{n} \quad \text{et} \quad b \equiv \beta \pmod{n} +\quad \Rightarrow \quad a b \equiv \alpha \beta \pmod{n} +``` +""" + +# â•”â•â•¡ 7db2060b-d69e-42e7-ae81-fd37ee793876 +md""" +Corollaire +```math +n \mid a \quad \text{et} \quad n \mid b \quad \Rightarrow \quad n \mid (ab) +``` +À ne pas confondre avec +```math +a \mid n \quad \text{et} \quad b \mid n \quad \Rightarrow \quad (ab/\text{gcd}(a,b)) \mid n +``` +""" + # â•”â•â•¡ 83852dd5-3546-45af-a845-b01dab0aa2a6 -frametitle("Division modulaire") +frametitle("Inverse et division modulaire") -# â•”â•â•¡ 352b26e4-1cc3-47d5-a772-b460f718ebf8 -frametitle("Inverse modulaire") +# â•”â•â•¡ e1aafab7-c4f3-45ac-81ee-7f875ac7c8c6 +md""" +* **Inverse modulaire** : étant donné ``a, n``, trouver ``x`` (noté ``a^{-1}``) tel que ``xa \equiv 1 \pmod{n}`` +* **Division modulaire** : étant donné ``a, b, n``, trouver ``x`` tel que ``xa \equiv b \pmod{n}`` → ``x \equiv a^{-1}b \pmod{n}``. + + +""" + +# â•”â•â•¡ 9752afbb-96e6-4f96-92cb-09654cf46155 +qa(md"Est-ce que l'inverse modulaire existe toujours ?", +md""" +Par le théorème de Bézout, il existe si et seulement si ``\text{gcd}(a, n) \mid 1``, c'est à dire que ``\text{gcd}(a, n) = 1``. +""") + +# â•”â•â•¡ a7985d16-500b-4024-aaa1-78e654b94be4 +qa(md"Comment trouver l'inverse modulaire ?", +md""" +Si on avait les coefficients ``x`` et ``y`` tels que ``xa + yn = 1``, l'inverse serait ``x``. Dans l'algorithme d'Euclide, on ne garde que le **reste** et on oublie le **quotient**. Il faudrait combiner les quotients des différentes opérations pour trouver ``x``. +""") # â•”â•â•¡ 2cb5c6e0-b431-4d2e-b023-cd2131112eca frametitle("Algorithme d'Euclide étendu") +# â•”â•â•¡ b319619e-8f8d-4650-8fb4-76e5ba953470 +md""" +```math +xb + yr = g \quad \text{et} \quad r = a - qb \quad \Rightarrow \quad (x - yq)b + ya = g +``` +""" + +# â•”â•â•¡ 3f1af973-a02b-4e06-8e6e-eff414fcaf67 +function pgcdx(a, b) + if a < b + g, x, y = pgcdx(b, a) + return g, y, x + elseif b == 0 + return a, one(a), one(a) + else + q, r = divrem(a, b) + g, x, y = pgcdx(b, r) + return g, y, x - y * q + end +end + +# â•”â•â•¡ aee611f2-bc86-4e85-bbcb-add78c6a9175 +gcd_g, gcd_x, gcd_y = pgcdx(gcd_a, gcd_b) + +# â•”â•â•¡ 40b8e474-16e0-4a61-bb28-11d90beefeea +gcd_x * gcd_a + gcd_y * gcd_b + +# â•”â•â•¡ a41722b8-8c21-4d3c-a38b-4d248a79e80a +md"Pas une solution unique:" + +# â•”â•â•¡ eeaec4f4-71bd-43df-b9c9-a00bc3b1864b +gcdx(gcd_a, gcd_b) + # â•”â•â•¡ f4895654-d684-42d2-ae4c-de72e6824484 frametitle("Euler totient function") @@ -137,13 +224,70 @@ mod(2^Primes.totient(11), 11) # â•”â•â•¡ 457a1da2-3f87-43e6-a9cf-8dbfb225c4dc frametitle("Fast exponentiation") +# â•”â•â•¡ bafc9870-3823-4d1d-b0b7-94c69ee764d5 +import DocumenterCitations + +# â•”â•â•¡ b57adc77-3783-4958-91a0-e90782338755 +slider_a = @bind a Slider(1:100, default=11, show_value = true) + +# â•”â•â•¡ 18031ccb-657f-409a-9080-9a0ada3ae8b5 +slider_b = @bind b Slider(1:100, default=13, show_value = true) + +# â•”â•â•¡ 256c8009-4d2b-42f8-adaa-6f238ef22c6d +slider_n = @bind n Slider(1:100, default=5, show_value = true) + +# â•”â•â•¡ 31388128-33a3-4443-835e-74b91bf48268 +mod(a + b, n) + +# â•”â•â•¡ 87fdefa1-3bbd-4b69-ad3a-72baca6e55ee +mod(mod(a, n) + mod(b, n), n) + +# â•”â•â•¡ a1628317-7937-4316-85bf-2da860effce3 +mod(a * b, n) + +# â•”â•â•¡ 5c6c45b4-67e3-4ea8-bc09-0205ab24cbc3 +mod(mod(a, n) * mod(b, n), n) + +# â•”â•â•¡ 4e35d650-b9a6-4668-90f0-f27a50af29ad +abn_picker = md""" +| `a` | ``\alpha`` | `b` | ``\beta`` | `n` | +|------|-----|-----|---|---| +| $slider_a | $(mod(a, n)) | $slider_b | $(mod(b, n)) | $slider_n | +""" + +# â•”â•â•¡ d81bbd74-42df-4bb2-a045-9c2642cc19e5 +abn_picker + +# â•”â•â•¡ 4ef2c7e9-fb37-4e38-a252-b9c3f83d2a82 +abn_picker + +# â•”â•â•¡ ba16d83d-21a5-4f0c-807b-674a167da4dc +biblio = load_biblio!() + +# â•”â•â•¡ 6c3595d2-4f68-44da-90e7-dc9c68479bcf +cite(args...) = bibcite(biblio, args...) + +# â•”â•â•¡ 3df688c8-1c52-462d-88be-daa153333c60 +md""" +* Théorie des nombres: $(cite("hoffstein2014Introduction", "1.2, 1.3, 1.4, 1.5, 2.2, 2.3")) +* Diffie-Hellman: $(cite("hoffstein2014Introduction", "2.2, 2.3")) +""" + +# â•”â•â•¡ 8a5a251f-5373-445a-97b1-4d652c6b7ba8 +refs(keys) = bibrefs(biblio, keys) + +# â•”â•â•¡ 41cf9efd-65e5-4abb-94d3-e824780e659c +refs(["hoffstein2014Introduction"]) + # â•”â•â•¡ 00000000-0000-0000-0000-000000000001 PLUTO_PROJECT_TOML_CONTENTS = """ [deps] +DocumenterCitations = "daee34ce-89f3-4625-b898-19384cb65244" PlutoUI = "7f904dfe-b85e-4ff6-b463-dae2292396a8" Primes = "27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae" [compat] +DocumenterCitations = "~1.3.5" PlutoUI = "~0.7.60" Primes = "~0.5.6" """ @@ -154,7 +298,12 @@ PLUTO_MANIFEST_TOML_CONTENTS = """ julia_version = "1.11.1" manifest_format = "2.0" -project_hash = "c18f2dc82a5fa9b4f1b8bdf216d21c9674fba955" +project_hash = "64644b8e91149faeb3d708bbf16fbd456efb4a5e" + +[[deps.ANSIColoredPrinters]] +git-tree-sha1 = "574baf8110975760d391c710b6341da1afa48d8c" +uuid = "a4c015fc-c6ff-483c-b24f-f7ea428134e9" +version = "0.0.1" [[deps.AbstractPlutoDingetjes]] deps = ["Pkg"] @@ -162,6 +311,11 @@ git-tree-sha1 = "6e1d2a35f2f90a4bc7c2ed98079b2ba09c35b83a" uuid = "6e696c72-6542-2067-7265-42206c756150" version = "1.3.2" +[[deps.AbstractTrees]] +git-tree-sha1 = "2d9c9a55f9c93e8887ad391fbae72f8ef55e1177" +uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" +version = "0.4.5" + [[deps.ArgTools]] uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" version = "1.1.2" @@ -174,27 +328,97 @@ version = "1.11.0" uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" version = "1.11.0" +[[deps.BibInternal]] +deps = ["TestItems"] +git-tree-sha1 = "b3107800faf461eca3281f89f8d768f4b3e99969" +uuid = "2027ae74-3657-4b95-ae00-e2f7d55c3e64" +version = "0.3.7" + +[[deps.BibParser]] +deps = ["BibInternal", "DataStructures", "Dates", "JSONSchema", "TestItems", "YAML"] +git-tree-sha1 = "33478bed83bd124ea8ecd9161b3918fb4c70e529" +uuid = "13533e5b-e1c2-4e57-8cef-cac5e52f6474" +version = "0.2.2" + +[[deps.Bibliography]] +deps = ["BibInternal", "BibParser", "DataStructures", "Dates", "FileIO", "YAML"] +git-tree-sha1 = "520c679daed011ce835d9efa7778863aad6687ed" +uuid = "f1be7e48-bf82-45af-a471-ae754a193061" +version = "0.2.20" + +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "bce6804e5e6044c6daab27bb533d1295e4a2e759" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.6" + [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] git-tree-sha1 = "b10d0b65641d57b8b4d5e234446582de5047050d" uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" version = "0.11.5" +[[deps.Compat]] +deps = ["TOML", "UUIDs"] +git-tree-sha1 = "8ae8d32e09f0dcf42a36b90d4e17f5dd2e4c4215" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.16.0" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + [[deps.CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" version = "1.1.1+0" +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "1d0a14036acb104d9e89698bd408f63ab58cdc82" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.20" + [[deps.Dates]] deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" version = "1.11.0" +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.3" + +[[deps.Documenter]] +deps = ["ANSIColoredPrinters", "AbstractTrees", "Base64", "CodecZlib", "Dates", "DocStringExtensions", "Downloads", "Git", "IOCapture", "InteractiveUtils", "JSON", "LibGit2", "Logging", "Markdown", "MarkdownAST", "Pkg", "PrecompileTools", "REPL", "RegistryInstances", "SHA", "TOML", "Test", "Unicode"] +git-tree-sha1 = "d0ea2c044963ed6f37703cead7e29f70cba13d7e" +uuid = "e30172f5-a6a5-5a46-863b-614d45cd2de4" +version = "1.8.0" + +[[deps.DocumenterCitations]] +deps = ["AbstractTrees", "Bibliography", "Dates", "Documenter", "Logging", "Markdown", "MarkdownAST", "OrderedCollections", "Unicode"] +git-tree-sha1 = "5a72f3f804deb1431cb79f5636163e4fdf8ed8ed" +uuid = "daee34ce-89f3-4625-b898-19384cb65244" +version = "1.3.5" + [[deps.Downloads]] deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" version = "1.6.0" +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1c6317308b9dc757616f0b5cb379db10494443a7" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.6.2+0" + +[[deps.FileIO]] +deps = ["Pkg", "Requires", "UUIDs"] +git-tree-sha1 = "91e0e5c68d02bcdaae76d3c8ceb4361e8f28d2e9" +uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" +version = "1.16.5" + [[deps.FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" version = "1.11.0" @@ -205,6 +429,18 @@ git-tree-sha1 = "05882d6995ae5c12bb5f36dd2ed3f61c98cbb172" uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" version = "0.8.5" +[[deps.Git]] +deps = ["Git_jll"] +git-tree-sha1 = "04eff47b1354d702c3a85e8ab23d539bb7d5957e" +uuid = "d7ba0133-e1db-5d97-8f8c-041e4b3a1eb2" +version = "1.3.1" + +[[deps.Git_jll]] +deps = ["Artifacts", "Expat_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "Libiconv_jll", "OpenSSL_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "ea372033d09e4552a04fd38361cd019f9003f4f4" +uuid = "f8c6e375-362e-5223-8a59-34ff63f689eb" +version = "2.46.2+0" + [[deps.Hyperscript]] deps = ["Test"] git-tree-sha1 = "179267cfa5e712760cd43dcae385d7ea90cc25a4" @@ -233,12 +469,41 @@ deps = ["Markdown"] uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" version = "1.11.0" +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "be3dc50a92e5a386872a493a10050136d4703f9b" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.6.1" + [[deps.JSON]] deps = ["Dates", "Mmap", "Parsers", "Unicode"] git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" version = "0.21.4" +[[deps.JSON3]] +deps = ["Dates", "Mmap", "Parsers", "PrecompileTools", "StructTypes", "UUIDs"] +git-tree-sha1 = "1d322381ef7b087548321d3f878cb4c9bd8f8f9b" +uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" +version = "1.14.1" + + [deps.JSON3.extensions] + JSON3ArrowExt = ["ArrowTypes"] + + [deps.JSON3.weakdeps] + ArrowTypes = "31f734f8-188a-4ce0-8406-c8a06bd891cd" + +[[deps.JSONSchema]] +deps = ["Downloads", "JSON", "JSON3", "URIs"] +git-tree-sha1 = "243f1cdb476835d7c249deb9f29ad6b7827da7d3" +uuid = "7d188eb4-7ad8-530c-ae41-71a32a6d4692" +version = "1.4.1" + +[[deps.LazilyInitializedFields]] +git-tree-sha1 = "0f2da712350b020bc3957f269c9caad516383ee0" +uuid = "0e77f7df-68c5-4e49-93ce-4cd80f5598bf" +version = "1.3.0" + [[deps.LibCURL]] deps = ["LibCURL_jll", "MozillaCACerts_jll"] uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" @@ -268,6 +533,12 @@ version = "1.11.0+1" uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" version = "1.11.0" +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "61dfdba58e585066d8bce214c5a51eaa0539f269" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.17.0+1" + [[deps.LinearAlgebra]] deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" @@ -287,6 +558,12 @@ deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" version = "1.11.0" +[[deps.MarkdownAST]] +deps = ["AbstractTrees", "Markdown"] +git-tree-sha1 = "465a70f0fc7d443a00dcdc3267a497397b8a3899" +uuid = "d0879d2d-cac2-40c8-9cee-1863dc0c7391" +version = "0.1.2" + [[deps.MbedTLS_jll]] deps = ["Artifacts", "Libdl"] uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" @@ -309,6 +586,22 @@ deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" version = "0.3.27+1" +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "7493f61f55a6cce7325f197443aa80d32554ba10" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.15+1" + +[[deps.OrderedCollections]] +git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.3" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.42.0+1" + [[deps.Parsers]] deps = ["Dates", "PrecompileTools", "UUIDs"] git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" @@ -319,13 +612,11 @@ version = "2.8.1" deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "Random", "SHA", "TOML", "Tar", "UUIDs", "p7zip_jll"] uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" version = "1.11.0" +weakdeps = ["REPL"] [deps.Pkg.extensions] REPLExt = "REPL" - [deps.Pkg.weakdeps] - REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" - [[deps.PlutoUI]] deps = ["AbstractPlutoDingetjes", "Base64", "ColorTypes", "Dates", "FixedPointNumbers", "Hyperscript", "HypertextLiteral", "IOCapture", "InteractiveUtils", "JSON", "Logging", "MIMEs", "Markdown", "Random", "Reexport", "URIs", "UUIDs"] git-tree-sha1 = "eba4810d5e6a01f612b948c9fa94f905b49087b0" @@ -355,6 +646,11 @@ deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" version = "1.11.0" +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "StyledStrings", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" +version = "1.11.0" + [[deps.Random]] deps = ["SHA"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" @@ -365,6 +661,18 @@ git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" uuid = "189a3867-3050-52da-a836-e630ba90ab69" version = "1.2.2" +[[deps.RegistryInstances]] +deps = ["LazilyInitializedFields", "Pkg", "TOML", "Tar"] +git-tree-sha1 = "ffd19052caf598b8653b99404058fce14828be51" +uuid = "2792f1a3-b283-48e8-9a74-f99dce5104f3" +version = "0.1.0" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + [[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" version = "0.7.0" @@ -373,6 +681,10 @@ version = "0.7.0" uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" version = "1.11.0" +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" +version = "1.11.0" + [[deps.Statistics]] deps = ["LinearAlgebra"] git-tree-sha1 = "ae3bb1eb3bba077cd276bc5cfc337cc65c3075c0" @@ -385,6 +697,22 @@ version = "1.11.1" [deps.Statistics.weakdeps] SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +[[deps.StringEncodings]] +deps = ["Libiconv_jll"] +git-tree-sha1 = "b765e46ba27ecf6b44faf70df40c57aa3a547dcb" +uuid = "69024149-9ee7-55f6-a4c4-859efe599b68" +version = "0.3.7" + +[[deps.StructTypes]] +deps = ["Dates", "UUIDs"] +git-tree-sha1 = "159331b30e94d7b11379037feeb9b690950cace8" +uuid = "856f2bd8-1eba-4b0a-8007-ebc267875bd4" +version = "1.11.0" + +[[deps.StyledStrings]] +uuid = "f489334b-da3d-4c2e-b8f0-e476e12c162b" +version = "1.11.0" + [[deps.TOML]] deps = ["Dates"] uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" @@ -400,6 +728,16 @@ deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" version = "1.11.0" +[[deps.TestItems]] +git-tree-sha1 = "42fd9023fef18b9b78c8343a4e2f3813ffbcefcb" +uuid = "1c621080-faea-4a02-84b6-bbd5e436b8fe" +version = "1.0.0" + +[[deps.TranscodingStreams]] +git-tree-sha1 = "0c45878dcfdcfa8480052b6ab162cdd138781742" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.11.3" + [[deps.Tricks]] git-tree-sha1 = "7822b97e99a1672bfb1b49b668a6d46d58d8cbcb" uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" @@ -419,6 +757,12 @@ version = "1.11.0" uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" version = "1.11.0" +[[deps.YAML]] +deps = ["Base64", "Dates", "Printf", "StringEncodings"] +git-tree-sha1 = "dea63ff72079443240fbd013ba006bcbc8a9ac00" +uuid = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" +version = "0.4.12" + [[deps.Zlib_jll]] deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" @@ -442,6 +786,9 @@ version = "17.4.0+2" # â•”â•â•¡ Cell order: # ╟─736307ec-a2a4-11ef-0f85-ad1a0093e06a +# ╟─3df688c8-1c52-462d-88be-daa153333c60 +# ╟─41cf9efd-65e5-4abb-94d3-e824780e659c +# ╟─bbc907b1-63f8-435a-badc-11ed88bd6cf5 # ╟─cbabee34-2ca2-4ad4-93ba-2ec3c941da5e # ╟─909b8a36-79bb-4c1a-9dd7-4acaffc0434e # ╟─08b18315-c28e-44ed-beb2-5b17421b0224 @@ -459,13 +806,40 @@ version = "17.4.0+2" # ╟─f39cccac-5b24-46e4-8749-1b0a944542ef # â• â•fe2af566-4a8b-4052-9915-85266ee5ce98 # ╟─03e49669-cdee-4241-862d-33ee91214455 +# ╟─0ee6972c-5069-4ba0-887f-be64c7d000d0 +# ╟─f4f49568-dcf2-4c76-ba66-065d2fda7a4a +# ╟─d81bbd74-42df-4bb2-a045-9c2642cc19e5 +# â• â•31388128-33a3-4443-835e-74b91bf48268 +# â• â•87fdefa1-3bbd-4b69-ad3a-72baca6e55ee +# ╟─09f44611-ba21-4982-ba1b-0691124642fc +# ╟─642d545f-b1b9-49da-8a03-ad63e3214f59 +# ╟─4ef2c7e9-fb37-4e38-a252-b9c3f83d2a82 +# â• â•a1628317-7937-4316-85bf-2da860effce3 +# â• â•5c6c45b4-67e3-4ea8-bc09-0205ab24cbc3 +# ╟─7db2060b-d69e-42e7-ae81-fd37ee793876 # ╟─83852dd5-3546-45af-a845-b01dab0aa2a6 -# ╟─352b26e4-1cc3-47d5-a772-b460f718ebf8 +# ╟─e1aafab7-c4f3-45ac-81ee-7f875ac7c8c6 +# ╟─9752afbb-96e6-4f96-92cb-09654cf46155 +# ╟─a7985d16-500b-4024-aaa1-78e654b94be4 # ╟─2cb5c6e0-b431-4d2e-b023-cd2131112eca +# ╟─b319619e-8f8d-4650-8fb4-76e5ba953470 +# â• â•3f1af973-a02b-4e06-8e6e-eff414fcaf67 +# â• â•aee611f2-bc86-4e85-bbcb-add78c6a9175 +# â• â•40b8e474-16e0-4a61-bb28-11d90beefeea +# ╟─a41722b8-8c21-4d3c-a38b-4d248a79e80a +# â• â•eeaec4f4-71bd-43df-b9c9-a00bc3b1864b # ╟─f4895654-d684-42d2-ae4c-de72e6824484 # â• â•f855a589-36c2-4b77-9f01-17da963658f4 # ╟─457a1da2-3f87-43e6-a9cf-8dbfb225c4dc # â• â•06679a09-47d7-4024-8232-4954c08747a0 +# â• â•bafc9870-3823-4d1d-b0b7-94c69ee764d5 +# â• â•b57adc77-3783-4958-91a0-e90782338755 +# â• â•18031ccb-657f-409a-9080-9a0ada3ae8b5 +# â• â•256c8009-4d2b-42f8-adaa-6f238ef22c6d +# ╟─4e35d650-b9a6-4668-90f0-f27a50af29ad # â• â•1b1d5c9b-5fc7-480e-9649-e9c44a49c38d +# â• â•ba16d83d-21a5-4f0c-807b-674a167da4dc +# â• â•6c3595d2-4f68-44da-90e7-dc9c68479bcf +# â• â•8a5a251f-5373-445a-97b1-4d652c6b7ba8 # ╟─00000000-0000-0000-0000-000000000001 # ╟─00000000-0000-0000-0000-000000000002