Cartan-Brauer Hua Theorem

华罗庚只用10 lines 证明Cartan (陈省身的法国师傅)18 page的theorem, 厉害👆华有intuition 直觉的能力,尤其是Matrix ( Divisional Ring 除环): 华罗庚教的学生都会“打洞”(zero).

Study Abstract Algebra, must see thru “General” with Concrete examples to grasp key concepts :
Ring ( Matrix)
Similar matrix
Central (of Ring)

Matrix or Integer or Polynomial are all Rings.

Why called it a Ring? It is like CLOCK integer number (0,1, 2,…11,12) or “Z mod 12”, German calls it like “Ring”- shaped Clock. 中文叫环, 法文Anneau , 德文= 英 都叫 Ring.

Normal subgroup (Groupe Invariant: l’ensemble à gauche = à droit ) is equivalent to “Central” of Ring.

Langlands Programme 数学大一统

Langlands Programme:

Bridge between 2 Math Camps :
Algebra – Analysis

Implication: If a problem can’t solve by Algebra,then use Analysis :

Fermat’s Last Theorem 358 years unsolved by Algebra, Andrew Wiles proved by contradiction with Elliptic Curve / Modular Form.

Key Players:

  1. Canadian Langlands
  2. André Weil
  3. 吴宝珠 Ngoh BaoChao (Vietnamese French, École Normale Supérieure)

Mobile Haskell

Building AI apps with Haskell on Android devices that have a UI is possible, but requires a few steps and tools. Here’s a general idea of what you can do:

  1. Write the AI logic in Haskell: This can be done using functional programming concepts and libraries like Haskell’s lens or cabal.
  2. Compile the Haskell code to run on Android: This can be done using tools like Haskell for Android (HFa) or Mobile Haskell, which allow you to compile Haskell code into an APK that can run on Android devices.
  3. Create the UI for the app: This can be done using Android UI tools like Android XML or using a cross-platform UI toolkit like Flutter.
  4. Integrate the AI logic into the app’s UI: This can be done by calling the AI functions from within the UI code and passing data back and forth between the two.

Keep in mind that building AI apps can be complex and time-consuming, and that optimizing the app for mobile devices can also be challenging. Additionally, finding Haskell developers with expertise in both AI and mobile app development may be difficult.

Monad in Category Theory

A monad in category theory is a way to describe a concept of computation within a mathematical framework. To apply a monad in the context of category theory, one typically needs to:

  1. Define the category in which the monad is to be applied.
  2. Define the endofunctor that generates the monad. An endofunctor is a functor from a category to itself.
  3. Define the two natural transformations that form the monad structure: “unit” and “bind.” The “unit” natural transformation maps objects in the category to the monad, while the “bind” natural transformation maps morphisms in the category to morphisms in the monad.
  4. Show that the endofunctor and natural transformations satisfy the monad laws, which ensure that the monad structure is well-behaved.

Once the monad is defined, it can be used to model a variety of computational concepts, such as data structures, computations, and effects. Monads are commonly used in functional programming and are a fundamental concept in the study of category theory and its applications to computer science.

ChatGPT Jan 30 Version. Free Research Preview

Monad application in Haskell

Open sidebar

Apply Monad in Haskell

How to apply Monad in Haskell

A Monad in Haskell is a type class with a specific set of functions that allow you to build and chain computations in a predictable and composable manner. Here are the key steps to apply a Monad in Haskell:

  1. Define a type: To use a Monad, you need to define a custom type to hold your computations. This type must be an instance of the Monad type class.
  2. Implement the return function: return takes a value and returns a Monad that wraps this value. This function is used to inject values into your computation.
  3. Implement the (>>=) function: (>>=), also known as the “bind” operator, is used to chain computations together. It takes a Monad and a function that transforms the value inside the Monad and returns a new Monad.
  4. Use Monadic functions: Once you have defined your Monad type, you can use Monadic functions, such as mapM and filterM, to perform operations on your computations.

Here’s a simple example of how to create a Monad in Haskell:

kotlinCopy codedata MyMonad a = MyMonad a

instance Monad MyMonad where
return x = MyMonad x
(MyMonad x) >>= f = f x

In this example, MyMonad is a custom type that holds a value of type a, and return and (>>=) are implemented to wrap and chain the computations, respectively.

Haskell Backend with Android UI

To write an application with a Haskell back-end and an Android front-end, you’ll need to use a method of interoperation between the two languages, such as a Foreign Function Interface (FFI) or a third-party library.

One approach could be to write the business logic in Haskell and then expose it as a REST API. The Android front-end can then make API calls to the Haskell back-end to access the logic.

Here’s a high-level overview of the steps you can follow:

  1. Write the business logic in Haskell: Use Haskell to implement the core logic of your application. You can use any appropriate libraries and frameworks to assist with this.
  2. Expose the logic as a REST API: Use a library such as Servant or Scotty to expose the logic as a REST API. This will allow other systems, including your Android front-end, to interact with the logic through HTTP requests.
  3. Build the Android front-end: Use Android’s native development tools, such as Android Studio and the Android SDK, to build the user interface for your application. You can use Retrofit or another library to make API calls to the Haskell back-end from your Android code.
  4. Deploy the Haskell back-end: You can deploy the Haskell back-end on a server or cloud platform and configure it to serve the REST API.
  5. Test and iterate: Once you have the basic architecture in place, you can test the application and iterate on it until it meets your requirements.

Note that this is just one approach to building an application with a Haskell back-end and an Android front-end. There may be other approaches that are better suited to your specific use case.

ChatGPT Jan 30 Version. Free Research Preview. Our goal is 

FPL Comparison Overview

Which is the best Functional Programming language : Haskell, Scala, Rust, C++, Python, Typescript?

It’s subjective to say which is the best functional programming language as it depends on various factors such as personal preference, specific use case, and project requirements. However, here’s a brief overview of some popular functional programming languages:

  1. Haskell: A pure functional language that is known for its strong type system and theoretical foundations. It’s popular among researchers and academics.
  2. Scala: A hybrid functional/object-oriented language that runs on the JVM and can be used for a wide range of applications.
  3. Rust: A systems programming language that combines functional and imperative programming paradigms, and emphasizes safety and concurrency.
  4. C++: A multi-paradigm language that supports functional programming, but is primarily used for systems programming and performance-critical applications.
  5. Python: A multi-paradigm language that has functional programming features, but is primarily used for scripting and general-purpose programming.
  6. TypeScript: A statically typed language that builds on JavaScript and adds features for large-scale applications, including functional programming constructs.

In conclusion, the best functional programming language for you will depend on your specific use case and preferences.

Can Haskell run on JVM or Android

Yes, Haskell can run on the Java Virtual Machine (JVM) through the use of a Haskell to Java bytecode compiler, such as JHC or Jakarta Haskell Compiler. However, it’s not a native runtime for the JVM and may not perform as well as a language that was designed to run on the JVM, such as Scala.

As for running Haskell on Android, there are some experimental projects that aim to bring Haskell to Android, but it’s not a widely supported platform for Haskell at this time.

How is Haskell UI ?

Haskell is primarily a back-end language and is not widely used for building user interfaces. However, it’s possible to create graphical user interfaces (GUIs) in Haskell using libraries such as GTK, Qt, and wxWidgets.

These libraries provide a way to create windows, buttons, and other GUI elements using Haskell code. However, building a GUI in Haskell can be more challenging compared to using a GUI framework in a language that is specifically designed for UI development, such as Java or C#.

In summary, while it’s possible to build UIs in Haskell, it may not be the most convenient or efficient option for most UI development tasks.

Can Haskell interoperate with C++ or Java

Yes, Haskell can interoperate with both C++ and Java. There are several ways to achieve this, including:

  1. FFI (Foreign Function Interface): Haskell provides a standard FFI, which allows Haskell functions to be called from other languages and vice versa. This enables interoperation with C++ and Java by writing wrapper functions in these languages that call Haskell code.
  2. Third-party libraries: There are also libraries available, such as HsFFI and hs-java, that provide more convenient ways to interact with C++ and Java code from Haskell.

In conclusion, while Haskell is a purely functional language and has a different programming paradigm compared to C++ and Java, it is possible to interface with these languages and leverage their libraries and tools in Haskell projects

Yoneda Lemma Embedding

Yoneda is a Japanese mathematician, who met the Category Theory (CT) inventor Harvard Prof MacLane in Paris, both waiting for the train at ‘Gare du Nord’ station. Yoneda mentioned his discovery to Prof that all Categories in fact can be ‘faithfully’ viewed as “Set”, like my example of 家族 Category C consists of 吴氏家族x with object a (= 我), b(=兄/弟), is exactly (faithfully) depicted in 吴氏家谱 of the “Set of F” between (x->a ) to (x->b).
F is a Functor (like function) called ‘Natural Transformation’.

MacLane called this Lemma Yoneda, the only Theorem / Lemma in CT.

When Descartes fought with Fermat

Fermat and Descartes both invented the Analytical Geometry (解析几何) by different approaches – Fermat’s method (using a rough notion of “Limit”) is better, also laid the foundation of “Calculus” for Newton who admitted he stood on the shoulder of a giant (Fermat).

Lycée Pierre de Fermat (Classe Préparatoire) was my “alma mater” (1977-1979) where Fermat worked as a Toulouse (AirBus City) Chief Judge in 17CE.


17CE : inventors Pascal & Fermat,
thru 19CE mostly by French mathematicians using (Finite) Set Theory.

Forgotten : Renaissance era the Italian Cardano (reveal to the world the “i” complex number secret in solving cubic equation) who gave the operations “+” or “x” for probability of 2 dependent or independent events, respectively.

After 20 CE ,
“Modern Probability” by Russian.

SO(n), O(n), Affine

为什么几何Geometry 很难?
如何从群论(Group)的角度看几何学 – Félix Klein “Erlangen Programme” ?
为什么流形 (manifold)很重要?



1. 启蒙 第一代: 1900 – 1949 (留美博士: 姜立夫 / 江泽涵 (翻译 同调Homology/同伦 Homotopy) / 杨武之(杨振宁的父亲,陈省身的老师), 留法博士:熊庆来 (华罗庚的恩师), 留日: 陈健功 / 苏步青 )

1a: 外国教授来华教书: Bertrand Russell (UK, Logic), Hadamard (France),维纳(USA, MIT), etc.

1b. 数学系建立: 北京大学, 南开, 浙江/复旦,东南大学(现 南京大学)。

2. 第二代: 1949 – 1978 (中间10年断层: 文化大革命)- 留法博士:陈省身 (“Gauss II”),留英:华罗庚 (3 years under Cambridge Prof Hardy)

2a: 1950s 中学数学教育改革, 大量翻译外国中学教材: 范氏大代数 (College Algebra), 葛氏三角(Grandville Trigonometry), 欧式几何。

3. 第三代: 1978 邓小平恢复大学科研教育 – 本土:陈景润 (厦门大学本科毕业,华罗庚 的 研究生),留法博士: 吴文俊

3a. 1985 中国参加IMO Olympiad 比赛。1989-1990 首 2 次 中国得 IMO 团体冠军。

4. 第四代: 留美博士:丘城桐(陈省身的学生), 张益唐(北大 硕士 / Purdue PhD)

5. 第五代: 留美博士: 田刚(丘城桐的哈佛学生)

6. 第六代本土]: 北大:韦东奕, 清华:“求真学院”(丘城桐回国建立 80数学 天才 培训班:本科+硕/博 = 8 年)

Charles Hermite

Charles Hermite是 Galois 的同校&同师傅的Lycée Louis Le Grand学弟(小15届),数学老师Richard留着Galois 的旧作业交给Hermite 学习。

他发明 共轭矩阵 Conjugate Matrix, 第一人1873 证明 e is Transcendental, 他的德国学生Lindemann 1882 用他的方法证明 (pi) π transcendental. Lindermann 回德国,培养德国Gottingen派的学生Félix Klein, Gauss, Riemann, Hilbert, Noether…取代巴黎派,德国成为“世界数学中心”(till WW2中心 移到美国哈佛)

Hermite 跛脚, 被 军校 Ecole Polytechnique “X” 踢出大学一年级。(他是最后一名考进“X“, after 5 attempts)!

后来他出名了, X 请他 当Concours ( 科举)数学主考官。大讽刺! 他出的X 数学 特别难,现在依旧。考生要进 特别的Top Préparatoires (M’ 班 )老师训练题目,déjà -vu past year 考题 才会解。(同IMO Olympiad 数学难题的道理, Galois就是自以为“天下第一天才”,没练习旧考题,不及格 2次)

Inequality “≤”

Inequality ” ≤ “is an EQUIVALENCE RELATION “∼” (3 properties : Reflexive 自反, Symmetric 对称性 , Transitive 传递性 ) , more interesting than “<“.

” ≤ “: 一正二定三相等

凡是 structures(aka Set, Category,Group, Ring, …)除了 内部结构 (elements), 结构间的 “关系” (relation, aka arrow or Morphism) interesting to use /apply if it is a “∼” :

eg. 1. Congruence/Similarity (Geometry).

  1. Function 函数 / Mapping 映射 (between Sets)
  2. Functor 函子 (between Categories)
  3. Natural Transformation 自然变换 ( between Functors)
  4. Morphism (Homo-, Endo-, Iso-, -Auto between Groups, Rings, Vector Space…)
  5. Homeomorphism 同胚 (between Topologies eg. Mug and Donut )