Michael Birch's Avatar

Michael Birch

@birchmd.bsky.social

Software developer; math enthusiast; he/him; MTG casual; https://github.com/birchmd https://www.typedriven.ca/portfolios/

71 Followers  |  85 Following  |  86 Posts  |  Joined: 17.11.2024  |  1.8141

Latest posts by birchmd.bsky.social on Bluesky

The Pi Day in March is far inferior to the one today. Not only is M.DD (3.14 in the case of Pi Day) a terrible date format, but 22/7 is a better approximation!

So happy Pi Day to all who celebrate!

That said, I can't complain about having two excuses to talk about math :)

22.07.2025 21:57 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Deck
3 Fire Magic (FIN) 136
1 The Emperor of Palamecia (FIN) 219
1 Firion, Wild Rose Warrior (FIN) 137
2 Dreams of Laguna (FIN) 50
1 Sage's Nouliths (FIN) 70
1 Retrieve the Esper (FIN) 68
1 Summon: Leviathan (FIN) 77
1 Monk's Fist (FIN) 265
1 Thunder Magic (FIN) 165
1 Call the Mountain Chocobo (FIN) 131
1 Crossroads Village (FIN) 276
1 Light of Judgment (FIN) 144
1 Choco-Comet (FIN) 132
2 Shantotto, Tactician Magician (FIN) 241
1 Relm's Sketching (FIN) 67
3 Sahagin (FIN) 71
1 Sidequest: Card Collection (FIN) 73
1 Syncopate (FIN) 80
1 Baron, Airship Kingdom (FIN) 273
8 Island (SLD) 1469
7 Mountain (SLD) 1471

Sideboard
1 Coral Sword (FIN) 134
1 Sleep Magic (FIN) 74
1 Minwu, White Mage (FIN) 26
1 Aerith Rescue Mission (FIN) 5
1 Snow Villiers (FIN) 33
1 Adventurer's Inn (FIN) 271
1 Sidequest: Play Blitzball (FIN) 158
1 Sabotender (FIN) 153
1 Haste Magic (FIN) 140
1 Laughing Mad (FIN) 143
1 Opera Love Song (FIN) 147
1 Dovin's Veto (FCA) 51
1 Vincent's Limit Break (FIN) 126
1 Item Shopkeep (FIN) 142
1 Rook Turret (FIN) 69
1 Quina, Qu Gourmet (FIN) 194
1 Sharlayan, Nation of Scholars (FIN) 288

Deck 3 Fire Magic (FIN) 136 1 The Emperor of Palamecia (FIN) 219 1 Firion, Wild Rose Warrior (FIN) 137 2 Dreams of Laguna (FIN) 50 1 Sage's Nouliths (FIN) 70 1 Retrieve the Esper (FIN) 68 1 Summon: Leviathan (FIN) 77 1 Monk's Fist (FIN) 265 1 Thunder Magic (FIN) 165 1 Call the Mountain Chocobo (FIN) 131 1 Crossroads Village (FIN) 276 1 Light of Judgment (FIN) 144 1 Choco-Comet (FIN) 132 2 Shantotto, Tactician Magician (FIN) 241 1 Relm's Sketching (FIN) 67 3 Sahagin (FIN) 71 1 Sidequest: Card Collection (FIN) 73 1 Syncopate (FIN) 80 1 Baron, Airship Kingdom (FIN) 273 8 Island (SLD) 1469 7 Mountain (SLD) 1471 Sideboard 1 Coral Sword (FIN) 134 1 Sleep Magic (FIN) 74 1 Minwu, White Mage (FIN) 26 1 Aerith Rescue Mission (FIN) 5 1 Snow Villiers (FIN) 33 1 Adventurer's Inn (FIN) 271 1 Sidequest: Play Blitzball (FIN) 158 1 Sabotender (FIN) 153 1 Haste Magic (FIN) 140 1 Laughing Mad (FIN) 143 1 Opera Love Song (FIN) 147 1 Dovin's Veto (FCA) 51 1 Vincent's Limit Break (FIN) 126 1 Item Shopkeep (FIN) 142 1 Rook Turret (FIN) 69 1 Quina, Qu Gourmet (FIN) 194 1 Sharlayan, Nation of Scholars (FIN) 288

A record of 7-2 in Premier Draft Final Fantasy on Magic: the Gathering Arena.

A record of 7-2 in Premier Draft Final Fantasy on Magic: the Gathering Arena.

It's no secret now that blue-red spells is a good deck in #MTGxFINALFANTASY draft. But it's still satisfying when a good version comes together and you get 7 wins on #MTGArena !

15.07.2025 00:48 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
7-1 record in Premier Draft on Magic: The Gathering Arena.

7-1 record in Premier Draft on Magic: The Gathering Arena.

Deck
1 Choco-Comet (FIN) 132
1 Quina, Qu Gourmet (FIN) 194
4 Gysahl Greens (FIN) 190
1 Airship Crash (FIN) 171
1 Blitzball Shot (FIN) 176
1 Tellah, Great Sage (FIN) 244
1 Lightning Bolt (FCA) 40
1 Bartz and Boko (FIN) 175
1 Queen Brahne (FIN) 149
1 Gongaga, Reactor Town (FIN) 280
1 Call the Mountain Chocobo (FIN) 131
1 Warrior's Sword (FIN) 169
1 Ride the Shoopuf (FIN) 197
1 Light of Judgment (FIN) 144
1 The Regalia (FIN) 267
1 Summon: Esper Ramuh (FIN) 161
1 Torgal, A Fine Hound (FIN) 208
1 Summon: G.F. Ifrit (FIN) 163
1 Summon: Fenrir (FIN) 203
1 Summon: Titan (FIN) 204
1 Guadosalam, Farplane Gateway (FIN) 281
1 Summon: Fat Chocobo (FIN) 202
1 Island (SLD) 1469
7 Mountain (SLD) 1471
7 Forest (UST) 216

Sideboard
1 Thief's Knife (FIN) 81
1 Absolute Virtue (FIN) 212
1 The Emperor of Palamecia (FIN) 219
1 Battle Menu (FIN) 9
1 Giott, King of the Dwarves (FIN) 223
1 Rydia's Return (FIN) 198
1 Blitzball Shot (FIN) 176
1 Cloudbound Moogle (FIN) 11
1 Vincent's Limit Break (FIN) 126
1 Monk's Fist (FIN) 265
1 Town Greeter (FIN) 209
1 Rabanastre, Royal City (FIN) 287
2 Gigantoad (FIN) 187
2 Commune with Beavers (FIN) 182
1 Snow Villiers (FIN) 33

Deck 1 Choco-Comet (FIN) 132 1 Quina, Qu Gourmet (FIN) 194 4 Gysahl Greens (FIN) 190 1 Airship Crash (FIN) 171 1 Blitzball Shot (FIN) 176 1 Tellah, Great Sage (FIN) 244 1 Lightning Bolt (FCA) 40 1 Bartz and Boko (FIN) 175 1 Queen Brahne (FIN) 149 1 Gongaga, Reactor Town (FIN) 280 1 Call the Mountain Chocobo (FIN) 131 1 Warrior's Sword (FIN) 169 1 Ride the Shoopuf (FIN) 197 1 Light of Judgment (FIN) 144 1 The Regalia (FIN) 267 1 Summon: Esper Ramuh (FIN) 161 1 Torgal, A Fine Hound (FIN) 208 1 Summon: G.F. Ifrit (FIN) 163 1 Summon: Fenrir (FIN) 203 1 Summon: Titan (FIN) 204 1 Guadosalam, Farplane Gateway (FIN) 281 1 Summon: Fat Chocobo (FIN) 202 1 Island (SLD) 1469 7 Mountain (SLD) 1471 7 Forest (UST) 216 Sideboard 1 Thief's Knife (FIN) 81 1 Absolute Virtue (FIN) 212 1 The Emperor of Palamecia (FIN) 219 1 Battle Menu (FIN) 9 1 Giott, King of the Dwarves (FIN) 223 1 Rydia's Return (FIN) 198 1 Blitzball Shot (FIN) 176 1 Cloudbound Moogle (FIN) 11 1 Vincent's Limit Break (FIN) 126 1 Monk's Fist (FIN) 265 1 Town Greeter (FIN) 209 1 Rabanastre, Royal City (FIN) 287 2 Gigantoad (FIN) 187 2 Commune with Beavers (FIN) 182 1 Snow Villiers (FIN) 33

Ah Chocobo Spells, a classic archetype of #MTGxFINALFANTASY draft. Still good enough for 7 wins on #MTGArena

All joking aside, this deck was super fun to draft and play. And FF is a fun draft format because it has synergies allowing you build decks outside the seeded archetypes.

28.06.2025 02:42 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 1
Deck
1 Stiltzkin, Moogle Merchant (FIN) 34
9 Plains (SLD) 1468
1 Zack Fair (FIN) 45
1 Blazing Bomb (FIN) 130
8 Mountain (SLD) 1471
1 Dragoon's Lance (FIN) 17
2 Slash of Light (FIN) 32
1 White Mage's Staff (FIN) 42
1 Item Shopkeep (FIN) 142
1 Summon: Brynhildr (FIN) 160
1 Monk's Fist (FIN) 265
2 Gaelicat (FIN) 22
1 Paladin's Arms (FIN) 28
1 Sidequest: Play Blitzball (FIN) 158
3 Weapons Vendor (FIN) 40
1 White Auracite (FIN) 41
1 Fate of the Sun-Cryst (FIN) 19
1 Zidane, Tantalus Thief (FIN) 251
1 Nibelheim Aflame (FIN) 146
2 Warrior's Sword (FIN) 169

Deck 1 Stiltzkin, Moogle Merchant (FIN) 34 9 Plains (SLD) 1468 1 Zack Fair (FIN) 45 1 Blazing Bomb (FIN) 130 8 Mountain (SLD) 1471 1 Dragoon's Lance (FIN) 17 2 Slash of Light (FIN) 32 1 White Mage's Staff (FIN) 42 1 Item Shopkeep (FIN) 142 1 Summon: Brynhildr (FIN) 160 1 Monk's Fist (FIN) 265 2 Gaelicat (FIN) 22 1 Paladin's Arms (FIN) 28 1 Sidequest: Play Blitzball (FIN) 158 3 Weapons Vendor (FIN) 40 1 White Auracite (FIN) 41 1 Fate of the Sun-Cryst (FIN) 19 1 Zidane, Tantalus Thief (FIN) 251 1 Nibelheim Aflame (FIN) 146 2 Warrior's Sword (FIN) 169

7-2 record in Premier Draft Magic: The Gathering Final Fantasy

7-2 record in Premier Draft Magic: The Gathering Final Fantasy

My first 7 wins in #MTGxFINALFANTASY draft on #MTGArena !

20.06.2025 02:25 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

If you're wondering where these came from, the real ones are titles presented at ETAPS 2025, which I had the pleasure of attending this year. I didn't present anything myself, but I enjoyed the presentations I saw and I'm looking forward to digging more into formal verification!

08.05.2025 14:56 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Disclaimer: this is just a bit of fun! I am not disparaging any of the real talk titles. They are clear and technically accurate, which is exactly what you want from an academic talk title.

08.05.2025 14:56 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

C. Two-sorted algebraic decompositions of Brookes's shared-state denotational semantics

D. Reachability for Nonsmooth Systems with Lexicographic Jacobians

08.05.2025 14:56 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Poll: Which one of the following four talk titles is fake?

A. First-Person Choreographic Programming with Continuation-Passing Communications

B. Verification of Hybrid Hierarchical Systems via Approximate Abstraction Refining

(continued in ๐Ÿงต)

08.05.2025 14:56 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

So I suspect, though haven't looked at the numerical data to double check, that away from (0.5,0.5) a+b is positive so that the equilibria are unstable and thus allows the state to move towards the stable equilibrium in the center. And this is what the numerical trajectories showed as well.

14.04.2025 00:25 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I realized one more thing about the linearization and stability analysis. There is a whole line of equilibria y=x and the linearization applies to all of them. Since -1 is always an eigenvalue, the line is stable along one direction. The other eigenvalue is a+b, which changes along the line.

14.04.2025 00:25 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

So if your deck is a little better than your opponent (p>0.5) then on average you add cards to your deck, making it worse until they're evenly matched. This is reversed if you're a little behind your opponent. And so the game continues until a large enough variation randomly pushes someone to win.

13.04.2025 22:16 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I went into a lot of mathematical details above, but I didn't give any intuitive explanation. The idea is adding cards to your deck is bad (lower chance of finding high value cards). That negative is worse than the positive of adding a slightly above average card to move up the average of your deck.

13.04.2025 22:16 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
This figure shows the result of simulating 20 million games of War. To describe what is being plotted we first need to know the mathematical model I used for the analysis.

Let's assign each card in the deck a value 2 through 14. Then the outcome of a round of the game is determined solely by comparing these values. And we can measure how well a player is doing by considering the total value of cards in their deck. A value of 416 means that player has all the cards. We also track the the number of cards each player has. A player with all the cards as 52.

Without loss of generality, we can focus on player 1 since if player 1 has a deck value V containing N cards then player 2 has a deck value of 416 - V and 52 - N cards, so dynamics of player 2 are easily deduced from the dynamics of player 1.

To make our lives easier, we rescale the variables: x = V/416 and y = N/52. Note x and y are both in the range [0, 1].

We'll derive equations for how x and y change in the next figure, but for now we have enough context to say what is plotted in this figure. It is the (x, y) state space for the games. Each colored line is the average over many games with the same (V, N) initial conditions. All lines start at y=0.5 since each player begins with half the deck. They can start at different points in the x direction because the cards are randomly assigned to the players (so player 1 may get more or less high-value cards).

All the trajectories move diagonally until they approach the line y = x, then they all follow this line to the center point (0.5,0.5). Thus we see the games evolving to this steady state where they will stay forever, as described in the main post.

Now let's see if we can explain this numerical result with our mathematical model.

This figure shows the result of simulating 20 million games of War. To describe what is being plotted we first need to know the mathematical model I used for the analysis. Let's assign each card in the deck a value 2 through 14. Then the outcome of a round of the game is determined solely by comparing these values. And we can measure how well a player is doing by considering the total value of cards in their deck. A value of 416 means that player has all the cards. We also track the the number of cards each player has. A player with all the cards as 52. Without loss of generality, we can focus on player 1 since if player 1 has a deck value V containing N cards then player 2 has a deck value of 416 - V and 52 - N cards, so dynamics of player 2 are easily deduced from the dynamics of player 1. To make our lives easier, we rescale the variables: x = V/416 and y = N/52. Note x and y are both in the range [0, 1]. We'll derive equations for how x and y change in the next figure, but for now we have enough context to say what is plotted in this figure. It is the (x, y) state space for the games. Each colored line is the average over many games with the same (V, N) initial conditions. All lines start at y=0.5 since each player begins with half the deck. They can start at different points in the x direction because the cards are randomly assigned to the players (so player 1 may get more or less high-value cards). All the trajectories move diagonally until they approach the line y = x, then they all follow this line to the center point (0.5,0.5). Thus we see the games evolving to this steady state where they will stay forever, as described in the main post. Now let's see if we can explain this numerical result with our mathematical model.

To explain this plot we develop our mathematical model further. Recall from the previous figure we have the state variables V and N, and their rescaled versions x and y.

Suppose player 1 has a probability p of winning the next round of the game. Clearly p depends on V and N, we'll come back to that later (that's what this plot is about). For now we have the following equation for how V changes:

dV = p (416 - V)/(52 - N) - (1 - p) V/N

i.e. if player 1 wins the round then they add value to their deck equal to the average value of their opponent's deck, and if they lose then they lose value from their deck equal to their average value.

Similarly, the equation for how N changes is:

dN = p - (1 - p) = 2p - 1

i.e. N goes up by 1 with probability p and down by 1 with probability 1-p.

The equations are cleaner in terms of our rescaled variables:

52dx = p[(1-x)/(1-y) + x/y] - x/y
52dy = 2p - 1.

First we can notice that there is an equilibrium (dx=dy=0) when p=x=y=1/2.  I.e. both players have half the deck. And this is exactly what we observed in the numerical simulation.

The differential equations are non-linear, but we can check if this equilibrium is stable by linearizing the equations. A little calculus reveals:

26dx = (a - 1)(x - 0.5) + (b + 1)(y - 0.5)
26dy = a(x - 0.5) + b(y - 0.5)

where a = dp/dx and b = dp/dy, both evaluated at x=1/2,y=1/2.

The eigenvalues of the matrix for this linear system are -1 and a+b, so to make progress we need to know the value of these derivatives. Maybe there is a way to get them analytically, but we can get them numerically from the same data that gave the first figure.

For each (V,N) state we count how often player 1 won the round to estimate the probability p. Plotted in this figure is p as a function of x for different (fixed) values of y. Lines for values of y lower than 0.5 are redder and those higher are greener. There are multiple nearly parallel diagonal lines with positive slope.

To explain this plot we develop our mathematical model further. Recall from the previous figure we have the state variables V and N, and their rescaled versions x and y. Suppose player 1 has a probability p of winning the next round of the game. Clearly p depends on V and N, we'll come back to that later (that's what this plot is about). For now we have the following equation for how V changes: dV = p (416 - V)/(52 - N) - (1 - p) V/N i.e. if player 1 wins the round then they add value to their deck equal to the average value of their opponent's deck, and if they lose then they lose value from their deck equal to their average value. Similarly, the equation for how N changes is: dN = p - (1 - p) = 2p - 1 i.e. N goes up by 1 with probability p and down by 1 with probability 1-p. The equations are cleaner in terms of our rescaled variables: 52dx = p[(1-x)/(1-y) + x/y] - x/y 52dy = 2p - 1. First we can notice that there is an equilibrium (dx=dy=0) when p=x=y=1/2. I.e. both players have half the deck. And this is exactly what we observed in the numerical simulation. The differential equations are non-linear, but we can check if this equilibrium is stable by linearizing the equations. A little calculus reveals: 26dx = (a - 1)(x - 0.5) + (b + 1)(y - 0.5) 26dy = a(x - 0.5) + b(y - 0.5) where a = dp/dx and b = dp/dy, both evaluated at x=1/2,y=1/2. The eigenvalues of the matrix for this linear system are -1 and a+b, so to make progress we need to know the value of these derivatives. Maybe there is a way to get them analytically, but we can get them numerically from the same data that gave the first figure. For each (V,N) state we count how often player 1 won the round to estimate the probability p. Plotted in this figure is p as a function of x for different (fixed) values of y. Lines for values of y lower than 0.5 are redder and those higher are greener. There are multiple nearly parallel diagonal lines with positive slope.

Continuing our analysis from where we left off with the previous figure, this plot shows p as a function y for different (fixed) values of x. Once again lines corresponding to values of x less than 0.5 are redder while those that are greater are greener. There are multiple nearly parallel diagonal lines with negative slope. The further the lines get from 0.5 the more curved they become.

The previous plot can be used to get the value of a = dp/dx at x=y=0.5, and this plot gives the value of b = dp/dy at x=y=0.5. The results are

a = 2.6
b = -2.7.

So the sum is a+b=-0.1 and thus both eigenvalues of our linearized set of differential equations are negative. Therefore we have shown the equilibrium is stable! This agrees with the results of the simulation where all the state-space trajectories converged on the equilibrium.

Notice that the differential equations in our model did not account for wars (the mechanic which gives the game its title). They only include deck changes in the case one player wins the round immediately. I think the reason this does not impact our results is because wars are very infrequent events and therefore do not have a qualitative impact on the mean field theory.

Continuing our analysis from where we left off with the previous figure, this plot shows p as a function y for different (fixed) values of x. Once again lines corresponding to values of x less than 0.5 are redder while those that are greater are greener. There are multiple nearly parallel diagonal lines with negative slope. The further the lines get from 0.5 the more curved they become. The previous plot can be used to get the value of a = dp/dx at x=y=0.5, and this plot gives the value of b = dp/dy at x=y=0.5. The results are a = 2.6 b = -2.7. So the sum is a+b=-0.1 and thus both eigenvalues of our linearized set of differential equations are negative. Therefore we have shown the equilibrium is stable! This agrees with the results of the simulation where all the state-space trajectories converged on the equilibrium. Notice that the differential equations in our model did not account for wars (the mechanic which gives the game its title). They only include deck changes in the case one player wins the round immediately. I think the reason this does not impact our results is because wars are very infrequent events and therefore do not have a qualitative impact on the mean field theory.

The results are shown in the figures below. The alt text of the images discusses the methodology in greater detail.

13.04.2025 21:36 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

(the game will end with probability 1; as long as you shuffle the cards sometimes). But this analysis shows it happens only because of random fluctuations. That's why it can take a while! And also why it's good for distracting children.

13.04.2025 21:36 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

With a combination of numerical simulation and analysis of differential equations, I conclude that the mean field theory for this game says the game will go on forever with both players having about half the deck. Of course a real game will eventually end

13.04.2025 21:36 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

The main question we want to answer is about the dynamics of how the cards flow back and forth between the players. To avoid the details of actual cards we employ mean field theory (useful in epidemiology for example).

13.04.2025 21:36 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
War (card game) - Wikipedia

Let's do some mathematical modelling for fun! ๐Ÿงต

War is a simple card "game" sometimes played by children. It's really more of an activity actually because there are no decisions for the players to make, but this makes it easier to model.

en.wikipedia.org/wiki/War_(ca...

13.04.2025 21:36 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Deck
1 Basri, Tomorrow's Champion (DFT) 3
8 Island (SLD) 1469
1 Lightwheel Enhancements (DFT) 20
1 Nesting Bot (DFT) 22
1 Scrap Compactor (DFT) 242
1 Gallant Strike (DFT) 13
2 Gloryheath Lynx (DFT) 14
1 Interface Ace (DFT) 17
1 Stall Out (DFT) 66
8 Plains (SLD) 1468
2 Voyager Quickwelder (DFT) 37
1 Guidelight Synergist (DFT) 16
2 Broadcast Rambler (DFT) 6
2 Detention Chariot (DFT) 12
2 Roadside Blowout (DFT) 58
1 Thopter Fabricator (DFT) 68
1 Transit Mage (DFT) 70
1 Trip Up (DFT) 71
1 Sabotage Strategist (DFT) 59
1 Hulldrifter (DFT) 47
1 Night Market (DFT) 258

Deck 1 Basri, Tomorrow's Champion (DFT) 3 8 Island (SLD) 1469 1 Lightwheel Enhancements (DFT) 20 1 Nesting Bot (DFT) 22 1 Scrap Compactor (DFT) 242 1 Gallant Strike (DFT) 13 2 Gloryheath Lynx (DFT) 14 1 Interface Ace (DFT) 17 1 Stall Out (DFT) 66 8 Plains (SLD) 1468 2 Voyager Quickwelder (DFT) 37 1 Guidelight Synergist (DFT) 16 2 Broadcast Rambler (DFT) 6 2 Detention Chariot (DFT) 12 2 Roadside Blowout (DFT) 58 1 Thopter Fabricator (DFT) 68 1 Transit Mage (DFT) 70 1 Trip Up (DFT) 71 1 Sabotage Strategist (DFT) 59 1 Hulldrifter (DFT) 47 1 Night Market (DFT) 258

MTG Arena Premier Draft Aetherdrift screen event showing 7 wins and 1 loss. I am currently ranked Silver Tier 4.

MTG Arena Premier Draft Aetherdrift screen event showing 7 wins and 1 loss. I am currently ranked Silver Tier 4.

7 wins with a blue/white artifacts deck in #MTGAetherdrift !

22.03.2025 15:17 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

As a slightly embarrassing side note, I always think of "Kleisli" as "Khaleesi" from Game of Thrones even though they are definitely not the same word ๐Ÿ˜‚

21.03.2025 23:04 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

There's something beautiful and arcane about Haskell. They even include a poem in the documentation!

"To summarise in haiku:

Monad axioms:
Kleisli composition forms
a category."

21.03.2025 23:00 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 1

Perhaps @noisyastronomer.com can provide good suggestions.

16.03.2025 16:49 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0
A glass of beer next to the can from which it was poured. The beer is yellow and hazy. The can says "Rare Specimen NEIPA".

A glass of beer next to the can from which it was poured. The beer is yellow and hazy. The can says "Rare Specimen NEIPA".

A glass of beer next to the can from which it was poured. The beer is yellow and hazy. The can says "Deceptive Creature Nectaron NEIPA".

A glass of beer next to the can from which it was poured. The beer is yellow and hazy. The can says "Deceptive Creature Nectaron NEIPA".

And what better way to celebrate than with some beers from Collective Arts?
I enjoyed both of these NEIPAs, though personally I liked Rare Specimen more than Deceptive Creature because the latter seemed more like fizzy juice than beer to me.

14.03.2025 23:24 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Happy Pi Day!

14.03.2025 20:12 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
A Magic Square Breakthrough - Numberphile
YouTube video by Numberphile A Magic Square Breakthrough - Numberphile

References:
[1] en.wikipedia.org/wiki/Magic_s...
[2] www.youtube.com/watch?v=stpi...
[3] en.wikipedia.org/wiki/Magic_s...
[4] en.wikipedia.org/wiki/Gaussia...
[5] en.wikipedia.org/wiki/Pythago...

12/12

06.03.2025 21:36 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Even if we could show there are no zero-sum magic squares of (Gaussian) squares, I'm not sure how much that helps with our original problem. But I had fun regardless.

11/12

06.03.2025 21:36 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
A 3x3 magic square (mod 11) of (Gaussian) squares. From top left to bottom right the cells are:
(9i)^2, 4^2, i^2, 6^2, 0^2, (6i)^2, 1^2, (4i)^2, 9^2.

A 3x3 magic square (mod 11) of (Gaussian) squares. From top left to bottom right the cells are: (9i)^2, 4^2, i^2, 6^2, 0^2, (6i)^2, 1^2, (4i)^2, 9^2.

For example we have the following non-trivial solution mod 11:
1^2 + 9^2 = 4^2
1^2 + 6^2 = 9^2
This solution gives the magic square of squares* shown in the image.

*Allowing Gaussian integers as squares and taking the sums mod 11.

10/12

06.03.2025 21:36 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I also wasn't able to show that equations (1) and (2) are impossible to satisfy simultaneously (apart from the trivial solution of a = b = c = d = 0). I think the usual trick with that sort of thing is showing there are no solutions modulo some prime, but there are solutions so this does not work.

06.03.2025 21:36 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Now here's where I get stuck. We can substitute equation (2) into equation (1) to obtain 2a^2 + d^2 = c^2, which is readily solvable similar to how Pythagorean triples can be found. However, I didn't find any solutions which also had a^2 + d^2 being a perfect square (necessary to get the b we want).

06.03.2025 21:36 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

In the notation c is chosen to match the usual convention for Pythagorean triples and d is for "difference". A little algebra shows that we can rearrange these two relations in the following form:
a^2 + b^2 = c^2 (1)
a^2 + d^2 = b^2 (2)
I.e. we have two related Pythagorean triples!

7/12

06.03.2025 21:36 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

To make considering these sums and differences of squares easier, we'll change our notation so that the elements of our hypothetical magic square has non-zero entries: +/- a^2, +/- b^2, +/- c^2, and +/- d^2; where a^2 + b^2 = c^2 and b^2 - a^2 = d^2.

6/12

06.03.2025 21:36 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

@birchmd is following 20 prominent accounts