shoe_ _\;^-.-^;/_ _bum's Avatar

shoe_ _\;^-.-^;/_ _bum

@shoebum

I might post less here and more at https://shubhamkumar13.codeberg.page Watch me on : twitch.tv/shoe_bum

547
Followers
211
Following
631
Posts
23.03.2024
Joined
Posts Following

Latest posts by shoe_ _\;^-.-^;/_ _bum @shoebum

Gleam, F# and Lean

11.09.2025 17:32 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Screenshot of an emacs buffer, the emacs buffer shows:
```
def main : IO Unit := do
  let states <- initLeanContext "import Lean
theorem kirans_theorem : βˆ€ n : Nat, n = n := by
   intros n"
  let .some initState := states[0]? | return
  let mut state := initState

  let initialGoals ← state.getAllRemainingGoals
  println! "\n\n\n\n\n\nInitial state: {initialGoals.length} goals\n\n\n"
         
  -- Apply first tactic
  let newState <- runTac state "cases n"
  state := newState
            
  -- Work on succ (index 1)
  let newState <- runTac (state.setGoalIndex 1) "simp"
  state := newState

  -- Work on zero (index 0)
  let newState <- runTac (state.setGoalIndex 0) "simp"
  state := newState

  if let .some proofTerm ← state.getProofTerm then
     println! "Final proof term: {proofTerm}"

  -- Demonstrate backtracking
  println! "\nBacktracking and trying another proof..."
  state := state.backtrack.getD state 
  state := state.backtrack.getD state 
  state := state.backtrack.getD state

  let newState <- runTac (state.setGoalIndex 0) "simp"
  state := newState

  -- Show proof term after backtracking
  if let .some proofTerm ← state.getProofTerm then
     println! "Final Proof: {proofTerm}"
```

the other buffer shows a stdout for a terminal and reads:

```
Initial state: 1 goals



After 'cases n': 2 goals remaining
Goals: [case zero
⊒ 0 = 0, case succ
n✝ : Nat
⊒ n✝ + 1 = n✝ + 1]
After 'simp': 1 goals remaining
Goals: [case zero
⊒ 0 = 0]
After 'simp': 0 goals remaining
Goals: []
Final proof term: Nat.casesAuxOn (motive := fun a => _fvar.9 = a β†’ _fvar.9 = _fv  (fun h => Eq.symm h β–Έ of_eq_true (eq_self 0))
  (fun n h => Eq.symm h β–Έ of_eq_true (Eq.trans Nat.add_left_cancel_iff._proof_1 )

Backtracking and trying another proof...
After 'simp': 0 goals remaining
Goals: []
Final Proof: of_eq_true (eq_self _fvar.9)
```

Screenshot of an emacs buffer, the emacs buffer shows: ``` def main : IO Unit := do let states <- initLeanContext "import Lean theorem kirans_theorem : βˆ€ n : Nat, n = n := by intros n" let .some initState := states[0]? | return let mut state := initState let initialGoals ← state.getAllRemainingGoals println! "\n\n\n\n\n\nInitial state: {initialGoals.length} goals\n\n\n" -- Apply first tactic let newState <- runTac state "cases n" state := newState -- Work on succ (index 1) let newState <- runTac (state.setGoalIndex 1) "simp" state := newState -- Work on zero (index 0) let newState <- runTac (state.setGoalIndex 0) "simp" state := newState if let .some proofTerm ← state.getProofTerm then println! "Final proof term: {proofTerm}" -- Demonstrate backtracking println! "\nBacktracking and trying another proof..." state := state.backtrack.getD state state := state.backtrack.getD state state := state.backtrack.getD state let newState <- runTac (state.setGoalIndex 0) "simp" state := newState -- Show proof term after backtracking if let .some proofTerm ← state.getProofTerm then println! "Final Proof: {proofTerm}" ``` the other buffer shows a stdout for a terminal and reads: ``` Initial state: 1 goals After 'cases n': 2 goals remaining Goals: [case zero ⊒ 0 = 0, case succ n✝ : Nat ⊒ n✝ + 1 = n✝ + 1] After 'simp': 1 goals remaining Goals: [case zero ⊒ 0 = 0] After 'simp': 0 goals remaining Goals: [] Final proof term: Nat.casesAuxOn (motive := fun a => _fvar.9 = a β†’ _fvar.9 = _fv (fun h => Eq.symm h β–Έ of_eq_true (eq_self 0)) (fun n h => Eq.symm h β–Έ of_eq_true (Eq.trans Nat.add_left_cancel_iff._proof_1 ) Backtracking and trying another proof... After 'simp': 0 goals remaining Goals: [] Final Proof: of_eq_true (eq_self _fvar.9) ```

Finally, a wΜΆeΜΆaΜΆpΜΆoΜΆnΜΆ tool to surpass LeanDojo~

(Creating a Lean Context directly inside Lean itself, and then submitting tactics and backtracking programmatically)

#LeanProver #Lean

24.07.2025 02:35 πŸ‘ 4 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0
Casey Muratori – The Big OOPs: Anatomy of a Thirty-five-year Mistake – BSC 2025
Casey Muratori – The Big OOPs: Anatomy of a Thirty-five-year Mistake – BSC 2025 YouTube video by Better Software Conference

@cmuratori.bsky.social‬ gives a compelling analysis of OOP. I wrote production code from the late 80s, using C, which was perfect timing, since OOP has only ever been a thought experiment to me. I like ADTs and DUs, and my new C is #fsharp, which does ADTs better than C.

youtu.be/wo84LFzx5nI

17.07.2025 19:53 πŸ‘ 10 πŸ” 3 πŸ’¬ 2 πŸ“Œ 0

it's a perfectly fine argument to make in isolation, but arguing that *ocaml* of all languages (literally the only language to actually use global type inference) shouldn't have type classes because they hurt *readability* is... something.

18.07.2025 18:36 πŸ‘ 36 πŸ” 2 πŸ’¬ 3 πŸ“Œ 0
Announcing Raven: Scientific Computing for OCaml (Alpha Release) I’m excited to announce the alpha release of Raven, a modern scientific computing ecosystem for OCaml. What is Raven? Raven is a collection of libraries and tools for numerical computing and machine ...

There's a lot going on! discuss.ocaml.org/t/announcing... is particularly exciting

17.07.2025 21:55 πŸ‘ 2 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

Any OCaml devs in Asia???? #functionalprogramming

(Looking for speakers in Asia for invited talks for the OCaml workshop! Women and gender minorities esp!)

16.07.2025 15:03 πŸ‘ 8 πŸ” 2 πŸ’¬ 1 πŸ“Œ 0

Has anyone tried to bring Dusko Pavlovic's work related to "Programs as Diagrams"?

I was in need to build some sketches/specs and most of the visualization tools are not terse enough for me.

16.07.2025 23:09 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Conference presentation slide for FUNOCaml 2025 event in Warsaw, Poland on September 15-16. Features a circular photo of Paul-Elliot Angles d'Auriac, a person with shoulder-length wavy hair wearing round glasses and drinking from a blue cup. The slide announces a talk titled "Slipshow: A Full-Featured Presentation Tool in OCaml" and describes how Slipshow is a presentation tool originally written in JavaScript but rewritten in OCaml, featuring a runtime engine, compiler, collaborative editing website, VSCode extension, and standalone application. The talk explores how OCaml enabled a single developer to create and maintain such a comprehensive project.

Conference presentation slide for FUNOCaml 2025 event in Warsaw, Poland on September 15-16. Features a circular photo of Paul-Elliot Angles d'Auriac, a person with shoulder-length wavy hair wearing round glasses and drinking from a blue cup. The slide announces a talk titled "Slipshow: A Full-Featured Presentation Tool in OCaml" and describes how Slipshow is a presentation tool originally written in JavaScript but rewritten in OCaml, featuring a runtime engine, compiler, collaborative editing website, VSCode extension, and standalone application. The talk explores how OCaml enabled a single developer to create and maintain such a comprehensive project.

Paul-Elliot Angles d'Auriac:

Slipshow: A Full-Featured Presentation Tool in OCaml

FUN OCaml 2025 | Warsaw | Sept 15-16

How one developer rewrote a JavaScript presentation tool in OCaml, creating a platform with runtime engine, collaborative editing, VSCode extension & app.

16.07.2025 13:00 πŸ‘ 10 πŸ” 5 πŸ’¬ 0 πŸ“Œ 0
Post image

End of the Indian dream to work in the US.

Tbh, it's a reflection on us. We overvalued their institutions.

It's about time.

16.07.2025 10:32 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Hannes and his peers made their dream a reality by founding a worker-owned collective to write OCaml

and they've been busy building useful things for the ecosystem and for their clients! 🐫πŸ”₯

14.07.2025 08:11 πŸ‘ 16 πŸ” 5 πŸ’¬ 0 πŸ“Œ 0
Preview
Secure Internet Services with OCaml and MirageOS Β· Success Stories A worker-owned collective leverages OCaml and MirageOS to build secure, high-performance, and resource-efficient software solutions

New Success Story: Secure Internet Services with OCaml and MirageOS πŸ”’

Robur, a worker-owned collective, builds secure, high-performance, and resource-efficient software solutions!

OCaml's static typing eliminates runtime errors with predictable performance - perfect for system-level programming.

14.07.2025 08:04 πŸ‘ 13 πŸ” 3 πŸ’¬ 1 πŸ“Œ 2

Not arguing. I just didn't know where to stop.

04.07.2025 11:37 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Palestine’s Suffering: An Analysis of The Economist Magazine How does The Economist report on the genocide in Gaza?

I mean there is a nice summary of E's (print) bias. I didn't want to link it because it's a random medium article.

Since it's well written, claims well sourced

I will not die on this hill but worth thinking about

medium.com/theuglymonst...

04.07.2025 07:11 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Damn jane street cannot catch a break

04.07.2025 06:10 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image

Damn they keep score, lmao

03.07.2025 12:55 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
The Economist's racist, deceitful spiel on Gaza taken apart This is a case study in Western media complicity in genocide

I cannot in good conscience say it covers the world correctly if it doesn't cater to every day folk.

I don't want to link the article because it's pay-walled and idc. I'll link the criticism to that article which is not paywall and was extensively covered.

www.owenjones.news/p/the-econom...

03.07.2025 11:07 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

The Economist, well, has had for at least 19-20 months made themselves loud and clear on who they cater to.

It doesn't cater to me or the third world. This is all too common in western media so I am not surprised.

Genocide in Gaza is a litmus test. Which FT has had better coverage for a while.

03.07.2025 11:07 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

FT >>> Economist (rn at least)

01.07.2025 18:16 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I cannot understand this stupid framing as well : bsky.app/profile/shoe...

01.07.2025 07:40 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Legitimizing information that the reader has no opinion about is not revealing information.

If a layperson is reading this every language which is not Java, C, C++, Rust, Python, JS would be obscure.

This seems purposeful and irresponsible to me.

Preconceived notion is harmful for future OCamlers

30.06.2025 07:47 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Why does it keep hammering the image of OCaml being this "obscure" language from the land of France.

Jane street and other trading platforms like Lexifi etc. have been using it for decades.

I don't like when americans inject mysticism in things they don't understand.

29.06.2025 11:48 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 1
Post image Post image Post image

I've been having a lot of fun writing an @avaloniaui.net app in #fsharp
This time it got a bit of a lift up thanks to the SukiUI Theme!

20.06.2025 00:53 πŸ‘ 14 πŸ” 3 πŸ’¬ 2 πŸ“Œ 0
Preview
Fargo: Native F# Source-Based Package Management Adapting Rust's Cargo Distribution Model for Multi-Platform F# Compilation

We've had this design "on the board" for a while but just put it in a blog post. We're hoping it will help articulate our vision to the #fsharp as well as #mlir and #llvm communities to foster conversation and contribution as more of this surfaces from our lab. speakez.ai/blog/native-...

03.06.2025 13:43 πŸ‘ 12 πŸ” 7 πŸ’¬ 0 πŸ“Œ 0

Damn I was gonna write something similar but now I can use it o7 ty!

18.05.2025 20:56 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Anyone notifying me the regex is wrong didn't get the joke, just saying

06.05.2025 11:51 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Developers reading math :

Let z : A.
By the univalence axiom, the type R(x, z) = R(y, z) is equivalent to the type :

R(x, z) ≃ R(y, z).

"Mathematicians need to learn how to write in simpler ways"

06.05.2025 11:50 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Developers writing regex to filter email address :

^(?:(?!.*?[.]{2})[a-zA-Z0-9](?:[a-zA-Z0-9.+!%-]{1,64}|)|\"[a-zA-Z0-9.+!% -]{1,64}\")@[a-zA-Z0-9][a-zA-Z0-9.-]+(.[a-z]{2,}|.[0-9]{1,})$

"Ah yes, makes perfect sense!"

06.05.2025 11:49 πŸ‘ 0 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0

Is there any org in #Bangalore that would like to lend their space for an #FPIndia meetup? Please dm

#India #FunctionalProgramming #Meetup #Haskell #PureScript #Erlang #Elixir #OCaml #Scala #Clojure

03.05.2025 09:04 πŸ‘ 2 πŸ” 7 πŸ’¬ 0 πŸ“Œ 0
Post image

1/ 🐳DeepSeek just dropped Prover-V2-671B, a 671B-parameter AI model built to tackle formal math proofs in Lean 4. It’s open-source, massive, and optimized for theorem provingβ€”think of it as the mathlete of LLMs. Let's dive in πŸ§΅πŸ‘‡

02.05.2025 12:27 πŸ‘ 1 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0
Joining my group Β· KC Sivaramakrishnan

Some notes on pathways to join my group at IIT Madras: kcsrk.info/ocaml/iitm/c...

28.04.2025 09:10 πŸ‘ 7 πŸ” 5 πŸ’¬ 0 πŸ“Œ 0