%% if you are submitting an initial manuscript then you should have submission as an option here
%% if you are submitting a revised manuscript then you should have revision as an option here
%% otherwise options taken by the article class will be accepted
\documentclass[finalversion]{FPSAC2024}
\articlenumber{104}
%% but DO NOT pass any options (or change anything else anywhere) which alters page size / layout / font size etc


\usepackage{tikz}
\usepackage{microtype}
\usetikzlibrary{backgrounds}
\usetikzlibrary{arrows}
\usetikzlibrary{shapes,shapes.geometric,shapes.misc}

% this style is applied by default to any tikzpicture included via \tikzfig
\tikzstyle{tikzfig}=[baseline=-0.25em,scale=0.5]

% these are dummy properties used by TikZiT, but ignored by LaTex
\pgfkeys{/tikz/tikzit fill/.initial=0}
\pgfkeys{/tikz/tikzit draw/.initial=0}
\pgfkeys{/tikz/tikzit shape/.initial=0}
\pgfkeys{/tikz/tikzit category/.initial=0}

% standard layers used in .tikz files
\pgfdeclarelayer{edgelayer}
\pgfdeclarelayer{nodelayer}
\pgfsetlayers{background,edgelayer,nodelayer,main}

% style for blank nodes
\tikzstyle{none}=[inner sep=0mm]


% the same as \tikzfig, but in a {center} environment
\newcommand{\ctikzfig}[1]{%
\begin{center}\rm
  \tikzfig{#1}
\end{center}}

% fix strange self-loops, which are PGF/TikZ default
\tikzstyle{every loop}=[]







% TiKZ style file generated by TikZiT. You may edit this file manually,
% but some things (e.g. comments) may be overwritten. To be readable in
% TikZiT, the only non-comment lines must be of the form:
% \tikzstyle{NAME}=[PROPERTY LIST]

% Node styles



\tikzstyle{label}=[inner sep=0.15mm, font={\footnotesize}]
\tikzstyle{vert}=[fill=black, draw=white, shape=circle, line width=0.25mm, tikzit shape=circle, inner sep=0.35mm]
\tikzstyle{label-small}=[inner sep=0.1mm, font={\scriptsize}]
\tikzstyle{label-white}=[fill=white, draw=none, shape=circle, inner sep=0.07mm, font={\scriptsize}]
\tikzstyle{vert-white}=[fill=white, draw=black, shape=circle, inner sep=0.35 mm]
\tikzstyle{vert-red}=[fill=red, draw=white, shape=circle, inner sep=0.4 mm, font={\scriptsize}, text=black]

% Edge styles
\tikzstyle{blue}=[-, draw={rgb,255: red,49; green,149; blue,255}, line width=0.8pt]
\tikzstyle{red}=[-, draw=red, line width=0.8pt]
\tikzstyle{blue thick}=[-, tikzit draw=blue, draw=blue, line width=1.7pt]
\tikzstyle{thick}=[-, ultra thick]
\tikzstyle{dot}=[-, dotted]
\tikzstyle{fade}=[-, opacity=0.5]
\tikzstyle{yellow}=[-, draw={rgb,255: red,208; green,208; blue,42}, line width=1.5]
\tikzstyle{arrow}=[->, line width=2em]
\tikzstyle{faded}=[-, opacity=0.5]
\tikzstyle{matching}=[-, draw={rgb,255: red,255; green,80; blue,80}, line width=5]
%blue, opacity=0.5
\tikzstyle{orange}=[-, draw={rgb,255: red,255; green,128; blue,0}]
\tikzstyle{red arrow}=[draw=red, ->]
\tikzstyle{double edge}=[-, double, double distance=0.8 pt, draw=blue, line width=1.3, opacity=1]
\tikzstyle{single edge}=[-, opacity=1, draw=blue, line width=1.3]

% TiKZ style file generated by TikZiT. You may edit this file manually,
% but some things (e.g. comments) may be overwritten. To be readable in
% TikZiT, the only non-comment lines must be of the form:
% \tikzstyle{NAME}=[PROPERTY LIST]

% Node styles

% Edge styles
\tikzstyle{orange}=[-, draw={rgb,255: red,255; green,128; blue,0}]
\tikzstyle{dimer}=[-, draw={rgb,255: red,255; green,80; blue,80}, line width=2.5]
\tikzstyle{arrow}=[->]
\tikzstyle{grayfilled}=[-, fill={rgb,255: red,128; green,128; blue,128}, draw=blue, line width=2.5, opacity=0.5]

\newtheorem{thm}{Theorem}
\newtheorem{lemma}{Lemma}
\newtheorem{remark}{Remark}
\newtheorem{example}{Example}
\newtheorem{cor}{Corollary}
\newtheorem{defin}{Definition}
\newtheorem{prop}{Proposition}
\newtheorem{cexample}{Counterexample}
\newtheorem{conj}{Conjecture}
\newcommand{\N}{\mathbb{N}}
\newcommand{\Z}{\mathbb{Z}}
\newcommand{\R}{\mathbb{R}}
\newcommand{\ZZ}{\mathbb{Z}_{> 0}}
\newcommand{\col}{\operatorname{col}}

\usepackage{enumitem}
\usepackage{lipsum}
\usepackage{tikz}
\usetikzlibrary{trees}

\usepackage[all,cmtip]{xy}
\usepackage{tikz}
\usetikzlibrary{arrows, decorations.markings, cd}
\tikzstyle arrowstyle=[scale=1]
\tikzstyle directed=[postaction={decorate,
decoration={markings,mark=at position .65 with {\arrow[arrowstyle]{stealth}}}}]
%\usepackage{blkarray}
\usepackage{float}
\usepackage{mathdots}
\usepackage{bbold} 
\usepackage{tikz-cd}   % commutative diagrams
% \usepackage{graphicx}
% \usepackage{float}
% \usepackage{placeins}
% \usepackage{mdframed}
% \usepackage{amssymb}
% \usepackage{esint}
% \usepackage{cool}
% \usepackage[all,cmtip]{xy}
% % \usepackage{mathtools}
% % \usepackage{amstext} % for \text macro
% \usepackage{array}   % for \newcolumntype macro
%\usepackage{genyoungtabtikz}
%\usepackage{mnsymbol}
\usepackage{comment}


%% define your title in the usual way
\title{The monoid representation of upho posets and total positivity}

%% define your authors in the usual way
%% use \addressmark{1}, \addressmark{2} etc for the institutions, and use \thanks{} for contact details
\author[Ziyao Fu, Yulin Peng, and Yuchong Zhang]{Ziyao Fu\thanks{\href{mailto:fzy1003@stu.pku.edu.cn}{fzy1003@stu.pku.edu.cn}}\addressmark{1}, Yulin Peng\thanks{\href{mailto:2020141210113@stu.scu.edu.cn}{yulinpeng@stu.scu.edu.cn}}\addressmark{2}, \and Yuchong Zhang\thanks{\href{mailto:zongxun@umich.edu}{zongxun@umich.edu}}\addressmark{3}} 

%% then use \addressmark to match authors to institutions here
\address{\addressmark{1}School of Mathematical Sciences, Peking University, Beijing, 100871, China \\ \addressmark{2}School of Mathematics, Sichuan University, Chengdu, 610065, China \\ \addressmark{3}Department of Mathematics, University of Michigan, Ann Arbor, MI 48104, USA}

%% put the date of submission here
\received{\today}

%% leave this blank until submitting a revised version
%\revised{}

%% put your English abstract here, or comment this out if you don't have one yet
%% please don't use custom commands in your abstract / resume, as these will be displayed online
%% likewise for citations -- please don't use \cite, and instead write out your citation as something like (author year)
\abstract{In this paper, we establish a bijection between finitary colored upho posets and left-cancellative invertible-free monoids. This bijection maps $\N$-graded colored upho posets to left-cancellative homogeneous monoids. We use this bijection and the new concept of semi-upho posets to prove that every totally positive power series is the rank-generating function of some upho poset, resolving a conjecture of Gao et al.}


%% put your French abstract here, or comment this out if you don't have one
%\resume{}

%% put your keywords here, or comment this out if you don't have them yet
\keywords{upho posets, left-cancellative monoids, rank-generating functions, totally positive, log-concavity}

%% you can include your bibliography however you want, but using an external .bib file is STRONGLY RECOMMENDED and will make the editor's life much easier
%% regardless of how you do it, please use numerical citations; i.e., [xx, yy] in the text

%% this sample uses biblatex, which (among other things) takes care of URLs in a more flexible way than bibtex
%% but you can use bibtex if you want
\usepackage[backend=bibtex]{biblatex}
\addbibresource{ref.bib}
%% note the \printbibliography command at the end of the file which goes with these biblatex commands

\begin{document}

\maketitle
%% note that you DO NOT have to put your abstract here -- it is generated by \maketitle and the \abstract and \resume commands above

\section{Introduction}\label{sec:1}

%A poset is said to be \emph{upper homogeneous}, abbreviated as \emph{upho}, if each principal order filter is isomorphic to the poset itself. Upho posets are introduced by Richard Stanley in \cite{Stanleyuphoslide}, during his study of enumeration properties of Stern's triangle and the associated poset.

A poset is called \emph{upper homogeneous}, abbreviated as \emph{upho}, if each principal order filter is isomorphic to the poset itself. This concept was introduced by Richard Stanley during his research on the enumeration properties of Stern's triangle and its poset \cite{Stanleyuphoslide, STANLEY2023103814}.

The study of Stern's poset, particularly regarding enumeration problems, has been a focal point of numerous research efforts \cite{MR4546049, MR4463221}. Upho posets, as a generalization of Stern's poset, preserve the attribute of self-similarity, and hence exhibit many intriguing structural and enumeration properties. For example, in \cite{MR4318812}, Gao et al. give a concise characterization of $\N$-graded planar upho posets using their rank-generating functions; in \cite{MR4432972}, Hopkins proves that the characteristic generating functions of upho posets are the inverse of their rank-generating functions. Moreover, the breadth of applications for upho posets spans several domains, including lattice theory \cite{MR4432972, Hopkinslattice}, commutative algebra \cite[Conjecture 1.1]{MR4318812}, and finite geometry \cite[Theorem 1.3]{Hopkinslattice}.

For simplicity, we say a formal power series is an \emph{upho function} if it is the rank-generating function of some upho poset. A fundamental problem is:
\begin{center}
\vspace{-1ex}
    \emph{Is there a criterion to determine if a formal power series is an upho function?}
\end{center}
\vspace{-1ex}
In \cite{MR4318812}, Gao et al. prove that there are uncountably many different upho functions, and a straightforward corollary is that almost all upho functions are not rational functions. Hence, the complete characterization of upho functions is anticipated to be challenging. 

In this paper, we prove the main conjecture proposed by Gao et al. in \cite{MR4318812}.

\begin{thm}[{\cite[Conjecture 3.3]{MR4318812}}]\label{conj:Gao1}
    A formal power series $f(x)\in 1+x\Z_{\ge 0}[[x]]$ is the rank-generating function of an upho poset $P$ whose Ehrenborg quasi-symmetric function is a Schur-positive symmetric function if and only if $f(x)$ is totally positive.
\end{thm}

In \Cref{sec:3}, we introduce the notion of \emph{colored upho posets} and establish the following correspondence, which is explained in detail later.

\begin{thm}\label{thm:Corrsp}
    There is a bijection between finitary colored upho posets and left-cancellative invertible-free monoids. Moreover, this bijection maps $\N$-graded colored upho posets to left-cancellative homogeneous monoids, and maps finite type $\N$-graded colored upho posets to finitely generated left-cancellative homogeneous monoids.
\end{thm}

This correspondence plays an important role in understanding the self-similarity of upho posets: On one hand, we can do concrete calculations on upho posets using monoids from an algebraic perspective; on the other hand, we can get an intuition for the enumeration problems of left-cancellative monoids from a combinatorial perspective.

In \Cref{sec:4}, we explore the relationship between upho functions and total positivity.

\begin{defin}[{\cite{MR0230102}}]
    A formal power series $\sum_{n=0}^{\infty}a_n x^n$ is \emph{totally positive} if all finite minors of the infinite Toeplitz matrix
\[\begin{pmatrix}a_{0} & 0&0&0&\cdots \\a_{1} & a_{0} &0&0&\cdots \\a_{2} & a_{1} &a_{0}&0&\cdots \\\vdots&\vdots&\vdots&\vdots&\ddots\end{pmatrix}
\]
    are nonnegative.
\end{defin} 

Our working definition of totally positive function follows from \Cref{thm:working def of TP}.

\begin{thm}[{\cite{edrei51,salem1944power}}]\label{thm:working def of TP}
    A formal power series $f(x)\in 1+x\Z_{\ge 0}[[x]]$ is totally positive if and only if $f(x)$ is of the form of $\frac{g(x)}{h(x)}$, where $g(x), h(x) \in 1+ x\Z[x]$ such that all the complex roots of $g(x)$ are real and negative, and all the complex roots of $h(x)$ are real and positive.
\end{thm}


By employing \Cref{thm:Corrsp} and analyzing the rank-generating function of the newly defined concept of \emph{semi-upho posets}, we prove the following theorem.

\begin{thm}\label{thm:main}
    Let $f(x)\in 1+x\mathbb{Z}_{\ge 0}[[x]]$ be totally positive. Then $f(x)$ is an upho function. 
\end{thm}

And finally, we show that \Cref{conj:Gao1} is a corollary of \Cref{thm:main}.

The paper is structured as follows: \Cref{sec:2} provides necessary background on upho posets and introduces the concept of semi-upho posets. \Cref{sec:3} and \Cref{sec:4} are dedicated to the exposition and proof of the aforementioned results.

%\acknowledgements{
%This research was conducted as part of the PACE program during the summer of 2023 at Peking University. We thank the program and the university for providing an academically enriching environment. Our gratitude extends to Prof. Yibo Gao for proposing the project and to Yumou Fei, Samuel F. Hopkins, and Joel B. Lewis for engaging in valuable discussions. Additionally, we would like to extend our sincere thanks to the anonymous reviewers for their insightful comments and suggestions, which have significantly improved the quality of this paper.
%}

\section{Background on Upho Posets}\label{sec:2}
\begin{comment}
We first list some definitions regarding upho posets, and then introduce some related posets in order to develop our theory.    
\end{comment}

\subsection{Upho Posets}
In this paper, we employ the standard terminology used in order theory. For a more detailed exposition, readers are referred to \cite[Chapter 3]{MR1442260}. In this subsection, we introduce several concepts related to upho posets, along with some illustrative examples.

\begin{defin}
A poset $P$ is \emph{upper homogeneous}, abbreviated as \emph{upho}, if for every $s\in P$ we have $V_{P,s}\cong P$, where $V_{P,s}:=\{p\in P\mid s\le_P p\}$ is the \emph{principal order filter} generated by $s$.
\end{defin}
Note that each principal order filter has a unique minimal element, so every upho poset $P$ has a unique minimal element, denoted $\hat{0}_P$. We abbreviate $V_{P,s}$ to $V_s$ and $\hat{0}_P$ to $\hat{0}$ when the poset $P$ referred to is clear.

\begin{comment}

\begin{defin}
An upho poset $P$ is said to be \emph{Noetherian} if its principal order filters satisfy \emph{ascending chain condition}, that is, for every element $s\in P$, there is no infinite strictly ascending chain $V_s \subseteq V_{s_1}\subseteq V_{s_2}\subseteq \cdots$ (or equivalently, $s>_Ps_1>_Ps_2>_P\cdots$). An upho poset $P$ is said to be \emph{finitary} if every chain $C\subseteq P$ can be embedded into $\N$.
\end{defin}
\end{comment}

A poset $P$ is said to be \emph{$\mathbb N$-graded} if $P$ can be written as a disjoint union $P=P_0\sqcup P_1\sqcup P_2\sqcup\dots$ such that every maximal chain has the form $p_0\lessdot_P p_1\lessdot_P p_2\lessdot_P \cdots$, where $p_i\in P_i$ for all $i\in \N$. The \emph{rank function} $\rho:P\rightarrow \N$ of $P$ is defined by $\rho(p)=i$ for all $p\in P_i$. We refer to $P_i$ as the \emph{$i$-th layer} of $P$. 

An $\N$-graded poset $P$ is said to be of \emph{finite type} if $\left|P_i\right|$ is finite for all $i\in \N$. The \emph{rank-generating function} of a finite type $\N$-graded poset $P$ is defined to be $F_P(x):=\sum_{k=0}^{\infty}\left|P_k\right| x^k$.

The \emph{Ehrenborg quasi-symmetric function} \cite{MR1383883} of a finite type $\mathbb{N}$-graded poset $P$ is defined to be $E_P:=\sum_{n \geq 0} E_{P, n}$, where $E_{P,0}=1$, and
\[
E_{P, n}\left(x_1, x_2, \cdots,x_n\right):=\sum_{\substack{\hat{0} = t_0 \leq_P t_1 \leq_P \cdots \leq_P t_{k-1}<_P t_k \\ \rho\left(t_k\right)=n}} x_1^{\rho(t_1)-\rho(t_0)} x_2^{\rho(t_2)-\rho(t_1)} \cdots x_k^{\rho(t_k)-\rho(t_{k-1})},\ n \ge 1.
\]

In this paper, we define the following two finiteness conditions.

\begin{defin}
A poset $P$ is \emph{Noetherian} if its principal order filters satisfy \emph{ascending chain condition}, that is, for every element $s\in P$, there is no infinite strictly ascending chain $V_s \subseteq V_{s_1}\subseteq V_{s_2}\subseteq \cdots$ (or equivalently, $s>_Ps_1>_Ps_2>_P\cdots$).
\end{defin}

\begin{defin}
    The \emph{height} of an element $s$ in a poset $P$ is the maximal length of chains in $P$ with $s$ as its maximum. A poset $P$ is \emph{finitary} if every element in $P$ has finite height.
\end{defin}

All $\N$-graded posets are finitary, and all finitary posets are Noetherian. Moreover, in a Noetherian upho poset $P$, a finitary upho poset $P'\subseteq P$ can be obtained by selecting all elements of finite height in $P$, with $P'$ inheriting the order of $P$.

In a poset $P$, we define $\mathcal{E}_P:=\{(r, s)\mid r,s \in P, r\lessdot s\}$, which corresponds to the edges in the Hasse diagram of $P$ if $P$ is finitary. If a poset $P$ has a unique minimum $\hat{0}$, we define $\mathcal{A}_P:=\{s\in P \mid \hat{0}\lessdot s\}$, and elements in $\mathcal{A}_P$ are called \emph{atoms} of $P$. In a Noetherian poset, each maximal chain includes exactly one atom. However, both $\mathcal{A}_P$ and $\mathcal{E}_P$ can be empty if $P$ is non-Noetherian. See \Cref{eg:R}.

A formal power series $f(x)\in 1+x\Z[[x]]$ is said to be an \emph{upho function} if it is the rank-generating function of an upho poset. An important property of upho function is:
\begin{lemma}[{\cite[Lemma 2.3]{MR4318812}}]\label{lemma:produpho}
    Let $P$ and $Q$ be upho posets. Then $P\times Q$ is an upho poset. Furthermore, $F_{P\times Q}=F_{P} F_{Q}$, and $E_{P\times Q}=E_{P} E_{Q}$.
\end{lemma}

We list below some examples of upho posets and upho functions.

\begin{example}\label{eg:R}
     Nonnegative real numbers $\R_{\ge 0}$ with usual order is a non-Noetherian upho poset, and there are no atoms in $\R_{\ge 0}$. Let $\R_{\ge 0}\times \N$ be the poset product of $\R_{\ge 0}$ and $\N$, both with usual order. Then $\R_{\ge 0}\times \N$ is also a non-Noetherian upho poset, and $(0,1)$ is its only atom.
\end{example}

\begin{example}\label{eg:N*N lexi}
    The poset $\N \times \N$ with lexicographical order forms a Noetherian upho poset which is not finitary. For every $(m,n) \in \N \times \N$, the isomorphism $\tau: V_{(m,n)}\cong \N \times \N$ is given by $\tau(m,n+s)=(0,s), \tau(m+t, s)=(t,s)$ for all $s\in \N, t\in \N_{>0}$.
\end{example}

\begin{example}\label{eg:not N graded}
    The upho poset $P_M$ is defined by the following data: The elements in $P_M$ are those in the monoid $M=\langle x_1,x_2\mid x_1^3=x_2x_1 \rangle$; The partial order of $P_M$ is defined by left divisibility in $M$, that is, $a\le_{P_M}b$ if and only if there exists $c\in M$ such that $ac=b$ in $M$. 
\end{example}
It can be shown that $P_M$ is a finitary upho poset, yet not $\N$-graded.

\begin{example}\label{eg:not finite type}
The upho poset $P_{M_1}$ and $P_{M_2}$ are defined as follow: $P_{M_1}$ consists of elements in the free monoid $M_1$ generated by $[0,1] \subseteq \R$, with a partial order defined by left divisibility. Similarly, $P_{M_2}$ consists of elements in the free commutative monoid $M_2$ generated by $[0,1] \subseteq \R$, with its partial order also defined by left divisibility.
\end{example}
Both $P_{M_1}$ and $P_{M_2}$ are $\N$-graded upho posets that are not of finite type. The $d$-th layer of $P_{M_1}$ can be thought of as a cube of dimension $d$, while the $d$-th layer of $P_{M_2}$ can be thought of as a simplex of dimension $d$.

\begin{example}\label{example:easyexamples}
    \Cref{fig:easyeg} shows the Hasse diagrams of $\mathbb{N}$ (with usual order), full binary tree, Stern's poset, and bowtie poset from left to right. Their rank-generating functions are $\frac{1}{1-x}$, $\frac{1}{1-2x}$, $\frac{1}{(1-x)(1-2x)}$, and $\frac{1+x}{1-x}$, respectively. All of them are $\N$-graded upho posets of finite type.
    \end{example}
    \begin{figure}[H]
\centering
    \begin{minipage}{.25\textwidth}
    \centering
    \begin{tikzpicture}[scale=0.6]
	\begin{pgfonlayer}{nodelayer}
		\node [style=vert] (0) at (-1, 0) {};
		\node [style=vert] (1) at (-1, 1) {};
		\node [style=vert] (2) at (-1, 2) {};
		\node [style=vert] (3) at (-1, 3) {};
		\node [style=none] (5) at (-1, 3.25) {.};
		\node [style=none] (7) at (-1, 3.5) {.};
		\node [style=none] (8) at (-1, 3.75) {.};
	\end{pgfonlayer}
	\begin{pgfonlayer}{edgelayer}
		\draw (3) to (2);
		\draw (2) to (1);
		\draw (1) to (0);
	\end{pgfonlayer}
\end{tikzpicture}
    \end{minipage}%
    \begin{minipage}{.25\textwidth}
    \centering
    \begin{tikzpicture}[scale=0.6]
	\begin{pgfonlayer}{nodelayer}
		\node [style=vert] (0) at (0, 0) {};
		\node [style=vert] (1) at (-1, 1) {};
		\node [style=vert] (2) at (1, 1) {};
		\node [style=vert] (3) at (-1.5, 2) {};
		\node [style=vert] (4) at (-0.5, 2) {};
		\node [style=vert] (5) at (0.5, 2) {};
		\node [style=vert] (6) at (1.5, 2) {};
		\node [style=vert] (7) at (-1.75, 3) {};
		\node [style=vert] (8) at (-1.25, 3) {};
		\node [style=vert] (9) at (-0.75, 3) {};
		\node [style=vert] (10) at (-0.25, 3) {};
		\node [style=vert] (11) at (0.25, 3) {};
		\node [style=vert] (12) at (0.75, 3) {};
		\node [style=vert] (13) at (1.25, 3) {};
		\node [style=vert] (14) at (1.75, 3) {};
		\node [style=none] (15) at (0, 3.25) {};
		\node [style=none] (16) at (0, 3.5) {};
		\node [style=none] (17) at (0, 3.75) {};
		\node [style=none] (18) at (0, 3.25) {.};
		\node [style=none] (19) at (0, 3.5) {.};
		\node [style=none] (20) at (0, 3.75) {.};
	\end{pgfonlayer}
	\begin{pgfonlayer}{edgelayer}
		\draw (1) to (0);
		\draw (0) to (2);
		\draw (2) to (6);
		\draw (5) to (2);
		\draw (4) to (1);
		\draw (3) to (1);
		\draw (3) to (7);
		\draw (8) to (3);
		\draw (4) to (10);
		\draw (9) to (4);
		\draw (11) to (5);
		\draw (5) to (12);
		\draw (13) to (6);
		\draw (6) to (14);
	\end{pgfonlayer}
\end{tikzpicture}
    \end{minipage}%
    \begin{minipage}{.25\textwidth}
    \centering
    \begin{tikzpicture}[scale=0.6]
	\begin{pgfonlayer}{nodelayer}
		\node [style=vert] (0) at (0, -1) {};
		\node [style=vert] (1) at (-1, 0) {};
		\node [style=vert] (2) at (0, 0) {};
		\node [style=vert] (3) at (1, 0) {};
		\node [style=vert] (4) at (-1.5, 1) {};
		\node [style=vert] (5) at (-1, 1) {};
		\node [style=vert] (6) at (-0.5, 1) {};
		\node [style=vert] (7) at (0, 1) {};
		\node [style=vert] (8) at (0.5, 1) {};
		\node [style=vert] (9) at (1, 1) {};
		\node [style=vert] (10) at (1.5, 1) {};
		\node [style=none] (14) at (0, 2.25) {.};
		\node [style=none] (15) at (0, 2.5) {.};
		\node [style=none] (16) at (0, 2.75) {.};
		\node [style=vert] (17) at (-1.25, 2) {};
		\node [style=vert] (18) at (-1.75, 2) {};
		\node [style=vert] (19) at (-1.5, 2) {};
		\node [style=vert] (20) at (-1, 2) {};
		\node [style=vert] (21) at (-0.75, 2) {};
		\node [style=vert] (22) at (-0.5, 2) {};
		\node [style=vert] (23) at (-0.25, 2) {};
		\node [style=vert] (24) at (0, 2) {};
		\node [style=vert] (25) at (0.25, 2) {};
		\node [style=vert] (26) at (0.5, 2) {};
		\node [style=vert] (27) at (0.75, 2) {};
		\node [style=vert] (28) at (1, 2) {};
		\node [style=vert] (29) at (1.25, 2) {};
		\node [style=vert] (30) at (1.5, 2) {};
		\node [style=vert] (31) at (1.75, 2) {};
	\end{pgfonlayer}
	\begin{pgfonlayer}{edgelayer}
		\draw (0) to (1);
		\draw (0) to (2);
		\draw (0) to (3);
		\draw (3) to (10);
		\draw (3) to (9);
		\draw (3) to (8);
		\draw (8) to (2);
		\draw (2) to (7);
		\draw (2) to (6);
		\draw (6) to (1);
		\draw (1) to (5);
		\draw (1) to (4);
		\draw (18) to (4);
		\draw (19) to (4);
		\draw (17) to (4);
		\draw (17) to (5);
		\draw (20) to (5);
		\draw (21) to (5);
		\draw (21) to (6);
		\draw (22) to (6);
		\draw (23) to (6);
		\draw (23) to (7);
		\draw (24) to (7);
		\draw (25) to (7);
		\draw (25) to (8);
		\draw (26) to (8);
		\draw (27) to (8);
		\draw (27) to (9);
		\draw (28) to (9);
		\draw (29) to (9);
		\draw (29) to (10);
		\draw (30) to (10);
		\draw (31) to (10);
	\end{pgfonlayer}
\end{tikzpicture}
    \end{minipage}%
    \begin{minipage}{.25\textwidth}
    \centering
    \begin{tikzpicture}[scale=0.6]
	\begin{pgfonlayer}{nodelayer}
		\node [style=vert] (0) at (0, -1) {};
		\node [style=vert] (1) at (-1, 0) {};
		\node [style=vert] (2) at (1, 0) {};
		\node [style=vert] (3) at (-1, 1) {};
		\node [style=vert] (4) at (1, 1) {};
		\node [style=vert] (5) at (-1, 2) {};
		\node [style=vert] (6) at (1, 2) {};
		\node [style=vert] (7) at (1, 0) {};
		\node [style=none] (8) at (0, 2.25) {};
		\node [style=none] (9) at (0, 2.5) {};
		\node [style=none] (10) at (0, 2.75) {};
		\node [style=none] (11) at (0, 2.25) {.};
		\node [style=none] (12) at (0, 2.5) {.};
		\node [style=none] (13) at (0, 2.75) {.};
	\end{pgfonlayer}
	\begin{pgfonlayer}{edgelayer}
		\draw (0) to (7);
		\draw (0) to (1);
		\draw (1) to (4);
		\draw (3) to (7);
		\draw (1) to (3);
		\draw (7) to (4);
		\draw (3) to (5);
		\draw (6) to (4);
		\draw (6) to (3);
		\draw (5) to (4);
	\end{pgfonlayer}
\end{tikzpicture}
    \end{minipage}%
    \caption{The Hasse diagrams of \Cref{example:easyexamples}.}
    \label{fig:easyeg}
\end{figure}

\begin{example}\label{example:feiposet}
Fei's poset $\mathcal{F}$ is the upho poset that satisfies the generating rules depicted in the left two components of \Cref{fig:fei}. This poset is a finite type $\N$-graded upho poset, with its rank-generating function given by $F_{\mathcal{F}}(x)=\frac{1-x}{1-2x-x^2}$. The first three layers of the Hasse diagram of Fei's poset are shown in the rightmost component of \Cref{fig:fei}.
\begin{figure}[H]
    \begin{minipage}{.45\textwidth}
    \centering
    \begin{tikzpicture}
	\begin{pgfonlayer}{nodelayer}
		\node [style=vert] (0) at (-5, 0) {};
		\node [style=vert] (1) at (-6, 1) {};
		\node [style=vert] (2) at (-5, 1) {};
		\node [style=vert] (3) at (-4, 1) {};
		\node [style=none] (4) at (-5.25, 1.25) {};
		\node [style=none] (5) at (-3.75, 1.25) {};
		\node [style=none] (6) at (-5.25, 0.75) {};
		\node [style=none] (7) at (-3.75, 0.75) {};
		\node [style=vert] (8) at (-2, 0) {};
		\node [style=vert] (9) at (-1, 0) {};
		\node [style=vert] (10) at (-3, 1) {};
		\node [style=vert] (11) at (-2, 1) {};
		\node [style=vert] (12) at (-1, 1) {};
		\node [style=vert] (13) at (0, 1) {};
		\node [style=none] (14) at (-2.25, 0.25) {};
		\node [style=none] (15) at (-0.75, 0.25) {};
		\node [style=none] (16) at (-2.25, -0.25) {};
		\node [style=none] (17) at (-0.75, -0.25) {};
		\node [style=none] (18) at (-2.25, 0.75) {};
		\node [style=none] (19) at (-0.75, 0.75) {};
		\node [style=none] (20) at (-2.25, 1.25) {};
		\node [style=none] (21) at (-0.75, 1.25) {};
	\end{pgfonlayer}
	\begin{pgfonlayer}{edgelayer}
		\draw (1) to (0);
		\draw (2) to (0);
		\draw (0) to (3);
		\draw (10) to (8);
		\draw (8) to (11);
		\draw (8) to (12);
		\draw (11) to (9);
		\draw (9) to (12);
		\draw (9) to (13);
		\draw [style=blue] (4.center) to (5.center);
		\draw [style=blue] (5.center) to (7.center);
		\draw [style=blue] (7.center) to (6.center);
		\draw [style=blue] (6.center) to (4.center);
		\draw [style=blue] (20.center) to (21.center);
		\draw [style=blue] (21.center) to (19.center);
		\draw [style=blue] (19.center) to (18.center);
		\draw [style=blue] (18.center) to (20.center);
		\draw [style=blue] (14.center) to (15.center);
		\draw [style=blue] (15.center) to (17.center);
		\draw [style=blue] (17.center) to (16.center);
		\draw [style=blue] (16.center) to (14.center);
	\end{pgfonlayer}
\end{tikzpicture}
    \end{minipage}%
    \begin{minipage}{.55\textwidth}
    \centering
    \begin{tikzpicture}[scale=0.6]
	\begin{pgfonlayer}{nodelayer}
		\node [style=vert] (0) at (0, -2) {};
		\node [style=vert] (1) at (-2, -1) {};
		\node [style=vert] (2) at (2, -1) {};
		\node [style=vert] (3) at (3, -1) {};
		\node [style=vert] (4) at (-3.5, 0) {};
		\node [style=vert] (5) at (-2, 0) {};
		\node [style=vert] (6) at (-1.25, 0) {};
		\node [style=vert] (7) at (1, 0) {};
		\node [style=vert] (8) at (2, 0) {};
		\node [style=vert] (9) at (3, 0) {};
		\node [style=vert] (10) at (5, 0) {};
		\node [style=vert] (11) at (-5, 1) {};
		\node [style=vert] (12) at (-4, 1) {};
		\node [style=vert] (13) at (-3.25, 1) {};
		\node [style=vert] (14) at (-2.5, 1) {};
		\node [style=vert] (15) at (-2, 1) {};
		\node [style=vert] (16) at (-1.25, 1) {};
		\node [style=vert] (17) at (-0.75, 1) {};
		\node [style=vert] (18) at (-0.25, 1) {};
		\node [style=vert] (19) at (1.5, 1) {};
		\node [style=vert] (20) at (2, 1) {};
		\node [style=vert] (21) at (3, 1) {};
		\node [style=vert] (22) at (3.5, 1) {};
		\node [style=vert] (26) at (4, 1) {};
		\node [style=vert] (27) at (5, 1) {};
		\node [style=vert] (28) at (6, 1) {};
		\node [style=vert] (29) at (0.25, 1) {};
		\node [style=vert] (30) at (0.75, 1) {};
		\node [style=none] (31) at (1.75, -0.75) {};
		\node [style=none] (32) at (3.25, -0.75) {};
		\node [style=none] (33) at (3.25, -1.25) {};
		\node [style=none] (34) at (1.75, -1.25) {};
		\node [style=none] (35) at (1.75, 0.25) {};
		\node [style=none] (36) at (3.25, 0.25) {};
		\node [style=none] (37) at (3.25, -0.25) {};
		\node [style=none] (38) at (1.75, -0.25) {};
		\node [style=none] (39) at (1.75, 1.25) {};
		\node [style=none] (40) at (3.25, 1.25) {};
		\node [style=none] (41) at (3.25, 0.75) {};
		\node [style=none] (42) at (1.75, 0.75) {};
		\node [style=none] (43) at (4.75, 1.25) {};
		\node [style=none] (44) at (6.25, 1.25) {};
		\node [style=none] (45) at (6.25, 0.75) {};
		\node [style=none] (46) at (4.75, 0.75) {};
		\node [style=none] (47) at (-2.25, -0.25) {};
		\node [style=none] (48) at (-2.25, 0.25) {};
		\node [style=none] (49) at (-1, 0.25) {};
		\node [style=none] (50) at (-1, -0.25) {};
		\node [style=none] (51) at (-2.25, 0.75) {};
		\node [style=none] (52) at (-2.25, 1.25) {};
		\node [style=none] (53) at (-1, 1.25) {};
		\node [style=none] (54) at (-1, 0.75) {};
		\node [style=none] (55) at (0, 0.75) {};
		\node [style=none] (56) at (0, 1.25) {};
		\node [style=none] (57) at (1, 1.25) {};
		\node [style=none] (58) at (1, 0.75) {};
		\node [style=none] (59) at (-4.25, 0.75) {};
		\node [style=none] (60) at (-4.25, 1.25) {};
		\node [style=none] (61) at (-3, 1.25) {};
		\node [style=none] (62) at (-3, 0.75) {};
		\node [style=none] (63) at (-1, -0.25) {};
	\end{pgfonlayer}
	\begin{pgfonlayer}{edgelayer}
		\draw (1) to (0);
		\draw (2) to (0);
		\draw (0) to (3);
		\draw (4) to (1);
		\draw (1) to (6);
		\draw (5) to (1);
		\draw (7) to (2);
		\draw (8) to (2);
		\draw (9) to (2);
		\draw (8) to (3);
		\draw (9) to (3);
		\draw (3) to (10);
		\draw (11) to (4);
		\draw (4) to (12);
		\draw (4) to (13);
		\draw (14) to (5);
		\draw (15) to (5);
		\draw (15) to (6);
		\draw (16) to (6);
		\draw (16) to (5);
		\draw (6) to (17);
		\draw (18) to (7);
		\draw (10) to (26);
		\draw (10) to (27);
		\draw (10) to (28);
		\draw (19) to (8);
		\draw (8) to (20);
		\draw (8) to (21);
		\draw (9) to (20);
		\draw (9) to (21);
		\draw (9) to (22);
		\draw (29) to (7);
		\draw (30) to (7);
		\draw [style=blue] (60.center) to (61.center);
		\draw [style=blue] (61.center) to (62.center);
		\draw [style=blue] (62.center) to (59.center);
		\draw [style=blue] (59.center) to (60.center);
		\draw [style=blue] (52.center) to (53.center);
		\draw [style=blue] (53.center) to (54.center);
		\draw [style=blue] (54.center) to (51.center);
		\draw [style=blue] (51.center) to (52.center);
		\draw [style=blue] (48.center) to (49.center);
		\draw [style=blue] (49.center) to (63.center);
		\draw [style=blue] (63.center) to (47.center);
		\draw [style=blue] (47.center) to (48.center);
		\draw [style=blue] (56.center) to (57.center);
		\draw [style=blue] (57.center) to (58.center);
		\draw [style=blue] (58.center) to (55.center);
		\draw [style=blue] (55.center) to (56.center);
		\draw [style=blue] (39.center) to (40.center);
		\draw [style=blue] (40.center) to (41.center);
		\draw [style=blue] (41.center) to (42.center);
		\draw [style=blue] (42.center) to (39.center);
		\draw [style=blue] (35.center) to (36.center);
		\draw [style=blue] (36.center) to (37.center);
		\draw [style=blue] (37.center) to (38.center);
		\draw [style=blue] (38.center) to (35.center);
		\draw [style=blue] (31.center) to (32.center);
		\draw [style=blue] (32.center) to (33.center);
		\draw [style=blue] (33.center) to (34.center);
		\draw [style=blue] (34.center) to (31.center);
		\draw [style=blue] (43.center) to (44.center);
		\draw [style=blue] (44.center) to (45.center);
		\draw [style=blue] (45.center) to (46.center);
		\draw [style=blue] (46.center) to (43.center);
	\end{pgfonlayer}
\end{tikzpicture}
    \end{minipage}%
\caption{The generating rules and the first several layers of Fei's poset.}
\label{fig:fei}
\end{figure}
\end{example}
%Fei's poset is an inspiring example. 
On one hand, \Cref{example:feiposet} shows that not all upho functions are log-concave, as $|\mathcal{F}_1|\cdot|\mathcal{F}_3|=51>49=|\mathcal{F}_2|^2$. On the other hand, it illustrates potential connections between upper homogeneity and linear recurrence, inspiring our proof of \Cref{thm:type II}.



\subsection{Semi-upho Posets}
In this subsection, we define \emph{semi-upho posets} which have partial self-similarity. The motivation for introducing semi-upho posets is to explore formal power series $g(x)$ that, when multiplied by any upho function $f(x)$, yield an upho function. As shown in \Cref{lemma:produpho}, upho functions are optimal choices for $g(x)$. Moreover, in \Cref{thm:upho times semi-upho}, we generalize this result to the rank-generating functions of \emph{tree-like semi-upho posets}.

%When we try to look for an upho poset correspond to a given rank-generating function, one of our efficient weapons is that multiplying an upho function by an upho function yields an upho function. However, the properties of well-studied upho functions are not quite enough, so we question if there is a type of simpler poset that also contains self-similarity of some extent in order to generate our use of weapons.

Given posets $P'$ and $P$ with unique minima $\hat{0}_{P'}$ and $\hat{0}_P$ respectively, an injection $\eta : P' \hookrightarrow P$ is said to be an \emph{induced saturated order embedding}, abbreviated as \emph{isoembedding}, if $\eta(\hat{0}_{P'})=\hat{0}_P$, and furthermore, for every chain $C$ in $P'$ with given maximum $a$ and minimum $b$, $C$ is a maximal chain with given maximum $a$ and minimum $b$ if and only if $\eta(C)$ is a maximal chain with maximum $\eta(a)$ and minimum $\eta(b)$. 

\begin{defin}
A poset $S$ is \emph{semi-upho} if for every $s\in S$, there exists an isoembedding $V_s \hookrightarrow S$. 
\end{defin}
Upho posets are semi-upho posets. Moreover, a semi-upho poset can be thought of as an upho poset with some parts cut off. \Cref{fig:treesemi} is an example of \emph{tree-like semi-upho posets}, defined as finitary semi-upho posets whose Hasse diagrams are trees.

\begin{figure}[H]
    \centering
    \begin{tikzpicture}[scale=0.6]
	\begin{pgfonlayer}{nodelayer}
		\node [style=vert] (0) at (1, -2) {};
		\node [style=vert] (1) at (-4, -1) {};
		\node [style=vert] (3) at (6, -1) {};
		\node [style=vert] (4) at (-6, 0) {};
		\node [style=vert] (5) at (-4, 0) {};
		\node [style=vert] (6) at (-2, 0) {};
		\node [style=vert] (10) at (4, 0) {};
		\node [style=vert] (12) at (-6.75, 1) {};
		\node [style=vert] (13) at (-6, 1) {};
		\node [style=vert] (14) at (-5.25, 1) {};
		\node [style=vert] (15) at (-4.75, 1) {};
		\node [style=vert] (16) at (-4, 1) {};
		\node [style=vert] (17) at (-3.25, 1) {};
		\node [style=vert] (18) at (-2.75, 1) {};
		\node [style=vert] (30) at (-7, 2) {};
		\node [style=vert] (31) at (-6.75, 2) {};
		\node [style=vert] (32) at (-6.5, 2) {};
		\node [style=vert] (33) at (-6.25, 2) {};
		\node [style=vert] (34) at (-6, 2) {};
		\node [style=vert] (35) at (-5.75, 2) {};
		\node [style=vert] (36) at (-5.5, 2) {};
		\node [style=vert] (37) at (-5, 2) {};
		\node [style=vert] (38) at (-4.75, 2) {};
		\node [style=vert] (40) at (-4.5, 2) {};
		\node [style=vert] (41) at (-4.25, 2) {};
		\node [style=vert] (42) at (-4, 2) {};
		\node [style=vert] (43) at (-3.75, 2) {};
		\node [style=vert-red] (51) at (1, -1) {};
		\node [style=vert-red] (52) at (-1, 0) {};
		\node [style=vert-red] (53) at (1, 0) {};
		\node [style=vert-red] (54) at (3, 0) {};
		\node [style=vert-red] (55) at (-1.75, 1) {};
		\node [style=vert-red] (56) at (-1, 1) {};
		\node [style=vert-red] (57) at (-0.25, 1) {};
		\node [style=vert-red] (58) at (0.25, 1) {};
		\node [style=vert-red] (59) at (1, 1) {};
		\node [style=vert-red] (60) at (1.75, 1) {};
		\node [style=vert-red] (61) at (-2, 2) {};
		\node [style=vert-red] (62) at (-1.75, 2) {};
		\node [style=vert-red] (63) at (-1.5, 2) {};
		\node [style=vert-red] (64) at (-1.25, 2) {};
		\node [style=vert-red] (65) at (-1, 2) {};
		\node [style=vert-red] (66) at (-0.75, 2) {};
		\node [style=vert-red] (67) at (-0.5, 2) {};
		\node [style=vert-red] (68) at (0, 2) {};
		\node [style=vert-red] (69) at (0.25, 2) {};
		\node [style=vert-red] (70) at (0.5, 2) {};
		\node [style=vert-red] (71) at (0.75, 2) {};
		\node [style=vert-red] (72) at (1, 2) {};
		\node [style=vert-red] (73) at (1.25, 2) {};
		\node [style=none] (74) at (9, 2) {};
	\end{pgfonlayer}
	\begin{pgfonlayer}{edgelayer}
		\draw (1) to (0);
		\draw (0) to (3);
		\draw (51) to (0);
		\draw [style=red] (52) to (51);
		\draw [style=red] (53) to (51);
		\draw [style=red] (51) to (54);
		\draw (4) to (1);
		\draw (5) to (1);
		\draw (1) to (6);
		\draw (12) to (4);
		\draw (13) to (4);
		\draw (14) to (4);
		\draw (15) to (5);
		\draw (16) to (5);
		\draw (17) to (5);
		\draw (18) to (6);
		\draw (10) to (3);
		\draw [style=red] (55) to (52);
		\draw [style=red] (56) to (52);
		\draw [style=red] (57) to (52);
		\draw [style=red] (58) to (53);
		\draw [style=red] (59) to (53);
		\draw [style=red] (60) to (53);
		\draw (30) to (12);
		\draw (31) to (12);
		\draw (32) to (12);
		\draw (33) to (13);
		\draw (34) to (13);
		\draw (35) to (13);
		\draw (36) to (14);
		\draw (37) to (15);
		\draw (38) to (15);
		\draw (40) to (15);
		\draw (41) to (16);
		\draw (42) to (16);
		\draw (43) to (16);
		\draw [style=red] (61) to (55);
		\draw [style=red] (62) to (55);
		\draw [style=red] (63) to (55);
		\draw [style=red] (64) to (56);
		\draw [style=red] (65) to (56);
		\draw [style=red] (66) to (56);
		\draw [style=red] (67) to (57);
		\draw [style=red] (68) to (58);
		\draw [style=red] (69) to (58);
		\draw [style=red] (70) to (58);
		\draw [style=red] (71) to (59);
		\draw [style=red] (72) to (59);
		\draw [style=red] (73) to (59);
	\end{pgfonlayer}
\end{tikzpicture}
    \caption{A tree-like semi-upho poset. The red part is a principal order filter that can be isoembedded into the poset itself.}
    \label{fig:treesemi}
\end{figure}


\section{Monoid Representation}\label{sec:3}
In this section, we establish a bijection between finitary \emph{colored upho posets} and \emph{left-cancellative invertible-free monoids}, and associate the bijection to upho posets.
%In this section, we first introduce \emph{colored upho posets} in \Cref{subsec:colored upho def}. Then in \Cref{subsec:corresp}, we establish a bijection between finitary colored upho posets and some monoids. Finally, in \Cref{subsec:forgetful and regularity}, we use the \emph{forgetful mapping} to associate it to upho posets.

%In \Cref{subsec:colored quasiupho-LCIF}, we develop this correspondence in its most general form, that is, between finitary colored upho posets and left-cancellative invertible-free monoids (abbreviated as LCIF monoids). In \Cref{subsec:colored upho-LCH}, we apply this correspondence specifically to $\N$-graded upho posets and left-cancellative homogeneous monoids (abbreviated as LCH monoids). In \Cref{subsec:colored semiupho-LCH0}, we further extend the correspondence to semi-upho posets and left-cancellative homogeneous 0-monoids (abbreviated as LCH 0-monoids). Finally, in \Cref{subsec:forgetful and regularity}, we explore the relationship between colored upho posets and upho posets through a forgetful mapping, leading to the introduction of the concept of a regular upho poset.

\subsection{Colored Upho Posets}\label{subsec:colored upho def}
The motivation for introducing \emph{colored upho posets} is to designate a unique isomorphism between each given principal order filter and the upho poset itself.
%, which possesses desirable properties.
%In this subsection, we introduce the concept of \emph{colored upho poset} and \emph{colored semi-upho poset}, 

\begin{defin}
    A colored upho poset $\tilde{P}$ consists of the data $(P, \col_P)$: The poset $P$ is an upho poset, and the color mapping $\col_P: \mathcal{E}_P\to \mathcal{A}_P$ satisfies the following conditions:
    \vspace{-1ex}
    \begin{itemize}[itemsep=-0.5ex]
        \item $\col_P(\hat{0}, t)=t$ for all $t\in \mathcal{A}_P$;
        \item For every $s\in P$, there exists an isomorphism $\phi_s: V_{s}\xrightarrow{\sim} P$ such that $\col_P(u,v)=\col_P(\phi_s(u), \phi_s(v))$ for all $(u,v)\in \mathcal{E}_{V_s}$.
    \end{itemize}
\end{defin}
It can be shown that such $\phi_s$ is unique for a given $s\in P$.

Finitary colored upho posets can be conceptualized as structures in which each edge extending upward from the same vertex in their Hasse diagrams is assigned a distinct color. Moreover, there exists a unique isomorphism between each principal order filter and the poset itself, which maps edges to identically colored ones.

Similarly, we introduce the concept of colored semi-upho posets.

\begin{defin}
        A colored semi-upho poset $\tilde{S}$ consists of the data $(S, \col_S)$: The poset $S$ is a semi-upho poset, and the color mapping $\col_S: \mathcal{E}_S\to \mathcal{A}_S$ satisfies the following conditions:
        \vspace{-1ex}
    \begin{itemize}[itemsep=-0.5ex]
        \item $\col_S(\hat{0}, t)=t$ for all $t\in \mathcal{A}_S$;
        \item For every $s\in S$, there exists an isoembedding $\psi_s: V_{s}\hookrightarrow S$ such that $\col_S(u,v)=\col_S(\psi_s(u), \psi_s(v))$ for all $(u,v)\in \mathcal{E}_{V_s}$.
    \end{itemize}
\end{defin}

It can also be shown that such $\psi_s$ is unique for a given $s\in S$.

\subsection{Correspondence with Monoids}\label{subsec:corresp}
In this subsection, we build the bijection between finitary colored upho posets and \emph{left-cancellative invertible-free monoids} explicitly. First, we recall some terminology of monoids, and readers may see \cite{MR1455373} for a more detailed exposition.

The \emph{identity element} of a monoid $M$, denoted $e$, is an element satisfying $ex=xe=x$ for every $x \in M$. A \emph{zero element} of a monoid $M$, denoted $0$, is an element satisfying $0x=x0=0$ for every $x \in M$. An element $x\in M$ is said to be \emph{left-invertible} if there exists an element $y \in M$ such that $yx=e$, and \emph{right-invertible} if there exists an element $y \in M$ such that $xy=e$. 
An element $x\in M$ is said to be \emph{inveritible} if it is both left-invertible and right-invertible. 
A monoid $M$ is said to be \emph{invertible-free} if it has no left-invertible or right-invertible elements other than $e$; equivalently, $ab=e$ implies $a=b=e$. An element $a$ of $M$ is said to be \emph{irreducible} if it is not invertible and is not the product of any two non-invertible elements. The set of all irreducible elements of $M$ is denoted $\mathcal{I}_M$. A monoid $M$ is said to be \emph{left-cancellative} if for every $a,x,y\in M$, $ax=ay$ implies $x=y$. 
%For elements $a, b \in M$, we say that $a$ is \emph{left divisible} by $b$ if $a = bc$ for some $c \in M$. 
An invertible-free monoid $M$ is said to be \emph{homogeneous} if for every $a_1a_2\cdots a_n=b_1b_2\cdots b_m \in M$, where $a_1, a_2, \dots, a_n, b_1, b_2,\dots, b_m \in \mathcal{I}_M$, we have $n=m$. We define the \emph{length} of this element to be $n$, and denote the set of all distinct elements of length $n$ by $W^M_n$.

    We define a mapping $\mathcal{M}$ which maps finitary colored upho posets to left-cancellative invertible-free monoids (abbreviated as \emph{LCIF monoids}) by the following rule.
    For a given finitary colored upho poset $\tilde{P}=(P,\col_P)$, the elements of $\mathcal{M}(\tilde{P})$ are the elements of $P$. For every $s,t \in P$, we define the multiplication $st$ by $st:=\phi_s^{-1}(t)$. It can be verified that such $\mathcal{M}(\tilde{P})$ is a well-defined LCIF monoid, and  $\mathcal{A_P}=\mathcal{I}_{\mathcal{M}(\tilde{P})}$.

    Conversely, we define a mapping $\mathcal{\tilde{P}}=(\mathcal{P},\mathcal{C})$ which maps LCIF monoids to finitary colored upho posets by the following rule.
    The elements of $\mathcal{P}(M)$ are the elements of $M$. The partial order $\le_P$ in $\mathcal{P}(M)$ is defined by the left divisibility in $M$, as is explained in \Cref{eg:not N graded}. Then we have for every $a, b \in M$, $a\lessdot_P b$ if and only if there exists $c\in \mathcal{I}_M$ such that $ac=b$. So the unique minimum in $\mathcal{P}(M)$ is $e$, and $\mathcal{A}_{\mathcal{P}(M)}=\mathcal{I}_M$. For every ordered pair $(a, b)\in\mathcal{E}_{\mathcal{P}(M)}$, define $\mathcal{C}(M)(a,b)$ to be $c\in \mathcal{I}_M$ such that $ac=b$ (such $c$ is unique by the left cancellative property of $M$). It can be verified that such $\mathcal{\tilde{P}(M)}:=(\mathcal{P}(M),\mathcal{C}(M))$ is a well-defined finitary colored upho posets.

    Furthermore, $\mathcal{\tilde{P}}(\mathcal{M}(\tilde{P}))\cong \tilde{P}$, and $\mathcal{M}(\mathcal{\tilde{P}}(M))\cong M$. Hence we have:
    %For every $s\in P$, we denote the set of all maximal descending chains begin with $s$ to be $D_s$. 
    %Each maximal descending chain $C: s\gtrdot_P s_1\gtrdot_P s_2 \gtrdot_P \cdots \gtrdot_P s_n = \hat{0}$ corresponds to a word $\col_P(s_n, s_{n-1})\col_P(s_{n-1}, s_{n-2})\cdots \col_P(s_2, s_1)\col_P(s_1,s)$ in the free monoid generated by $\mathcal{A_P}$. And hence, each $D_s$ corresponds to an equivalent class on the free monoid generated by $\mathcal{A_P}$, which is define to be $\mathcal{M}(s) \in \mathcal{M}(P)$. We can prove that such $\mathcal{M}(P)$ is a well-defined monoid, which is left-cancellative and invertible-free.

%It can be shown that $\mathcal{M}$ and $\mathcal{\tilde{P}}$ are mutually inverse, 
    
    \begin{thm}\label{thm:corrsp for finitary upho}
        The mutually inverse mappings $\mathcal{M}$ and $\mathcal{\tilde{P}}$ give a bijection between finitary colored upho posets and left-cancellative invertible-free monoids.
    \end{thm}

    Restrict to $\N$-graded colored upho posets, we have:

    \begin{cor}\label{cor:corrsp for N-graded upho}
        The mutually inverse mappings $\mathcal{M}$ and $\mathcal{\tilde{P}}$ give a bijection between $\N$-graded colored upho posets and left-cancellative homogeneous monoids (abbreviated as \emph{LCH monoids}). Moreover, finite type $\N$-graded colored upho posets correspond to finitely generated LCH monoids.
    \end{cor}

    Furthermore, the bijection can be generalized to semi-upho posets. 
    
    An \emph{LCIF $0$-monoid} is defined to be an LCIF monoid with an additional zero element $0$ and some relations $X_i=0$, where $X_i$ is an element of the original LCIF monoid. We denote these relations $X_i=0$ as \emph{$0$-defining relations}. Similarly, an \emph{LCH $0$-monoid} is defined to be an LCH monoid added by a zero element $0$ and some $0$-defining relations. It is worth mentioning that, in general, LCIF $0$-monoids are not left-cancellative, and LCH $0$-monoids are neither left-cancellative nor homogeneous. The mutually inverse mappings $\mathcal{M}_0$ and $\mathcal{\tilde{S}}$ between finitary colored semi-upho posets and LCIF $0$-monoids are defined similarly to $\mathcal{M}$ and $\mathcal{\tilde{P}}$, respectively. The only difference is that the elements in the posets now correspond to \emph{non-zero} elements in the monoids.
    \begin{cor}\label{cor:corrsp for semi-upho}
         The mutually inverse mappings $\mathcal{M}_0$ and $\mathcal{\tilde{S}}$ give a bijection between finitary colored semi-upho posets and LCIF $0$-monoids. Moreover, $\N$-graded colored semi-upho posets correspond to LCH $0$-monoids, and finite type $\N$-graded colored semi-upho posets correspond to finitely generated LCH $0$-monoids.
    \end{cor}

    
\subsection{The Forgetful Mapping and Regularity of Upho Posets}\label{subsec:forgetful and regularity}

Through the \emph{forgetful mapping}, we establish an association between monoids and finitary colored upho posets with finitary upho posets.

The \emph{forgetful mapping} $\mathfrak{F}$ maps a finitary colored semi-upho poset $\tilde{S}=(S, \col_S)$ to $S$. This mapping is well-defined on upho posets since upho posets are semi-upho.% It can be conceptualized as forgetting the colors in the colored semi-upho posets.

\Cref{fig:forget} demonstrates that $\mathfrak{F}$ is not injective, while the surjectivity of $\mathfrak{F}$ remains open.
%. Moreover, readers could verify that $\langle x_1,x_2\mid x_1^2=x_2^2 \rangle$ is the LCH monoid corresponding to the left colored upho poset, while $\langle x_1,x_2\mid x_1 x_2=x_2 x_1 \rangle$ corresponds to the right. These monoids are not isomorphic.
\begin{figure}[H]\label{fig:colorex}
\centering
    \begin{tikzpicture}[scale=0.5]
	\begin{pgfonlayer}{nodelayer}
		\node [style=vert] (0) at (0, -1) {};
		\node [style=vert] (1) at (-0.75, 0) {};
		\node [style=vert] (2) at (0.75, 0) {};
		\node [style=vert] (3) at (-1.5, 1) {};
		\node [style=vert] (4) at (1.5, 1) {};
		\node [style=vert] (5) at (-2.25, 2) {};
		\node [style=vert] (6) at (2.25, 2) {};
		\node [style=vert] (7) at (-3, 3) {};
		\node [style=vert] (8) at (3, 3) {};
		\node [style=vert] (9) at (0, 1) {};
		\node [style=vert] (10) at (-0.75, 2) {};
		\node [style=vert] (11) at (0.75, 2) {};
		\node [style=vert] (12) at (-1.5, 3) {};
		\node [style=vert] (13) at (1.5, 3) {};
		\node [style=vert] (14) at (0, 3) {};
		\node [style=vert] (15) at (7, -1) {};
		\node [style=vert] (16) at (6.25, 0) {};
		\node [style=vert] (17) at (7.75, 0) {};
		\node [style=vert] (18) at (5.5, 1) {};
		\node [style=vert] (19) at (8.5, 1) {};
		\node [style=vert] (20) at (4.75, 2) {};
		\node [style=vert] (21) at (9.25, 2) {};
		\node [style=vert] (22) at (4, 3) {};
		\node [style=vert] (23) at (10, 3) {};
		\node [style=vert] (24) at (7, 1) {};
		\node [style=vert] (25) at (6.25, 2) {};
		\node [style=vert] (26) at (7.75, 2) {};
		\node [style=vert] (27) at (5.5, 3) {};
		\node [style=vert] (28) at (8.5, 3) {};
		\node [style=vert] (29) at (7, 3) {};
		\node [style=none] (30) at (0, 3.5) {.};
		\node [style=none] (31) at (0, 3.75) {.};
		\node [style=none] (32) at (0, 4) {.};
		\node [style=none] (33) at (7, 3.5) {.};
		\node [style=none] (34) at (7, 3.75) {.};
		\node [style=none] (35) at (7, 4) {.};
	\end{pgfonlayer}
	\begin{pgfonlayer}{edgelayer}
		\draw [style=red] (0) to (1);
		\draw [style=red] (9) to (1);
		\draw [style=red] (9) to (10);
		\draw [style=red] (10) to (14);
		\draw [style=red] (12) to (5);
		\draw [style=red] (5) to (3);
		\draw [style=red] (13) to (11);
		\draw [style=red] (11) to (4);
		\draw [style=red] (4) to (2);
		\draw [style=red] (8) to (6);
		\draw [style=blue] (2) to (0);
		\draw [style=blue] (9) to (2);
		\draw [style=blue] (11) to (9);
		\draw [style=blue] (14) to (11);
		\draw [style=blue] (13) to (6);
		\draw [style=blue] (6) to (4);
		\draw [style=blue] (12) to (10);
		\draw [style=blue] (10) to (3);
		\draw [style=blue] (3) to (1);
		\draw [style=blue] (7) to (5);
		\draw [style=red] (15) to (16);
		\draw [style=red] (24) to (25);
		\draw [style=red] (20) to (18);
		\draw [style=red] (26) to (19);
		\draw [style=blue] (17) to (15);
		\draw [style=blue] (26) to (24);
		\draw [style=blue] (21) to (19);
		\draw [style=blue] (25) to (18);
		\draw [style=red] (18) to (16);
		\draw [style=red] (22) to (20);
		\draw [style=red] (27) to (25);
		\draw [style=red] (24) to (17);
		\draw [style=red] (26) to (29);
		\draw [style=red] (28) to (21);
		\draw [style=blue] (19) to (17);
		\draw [style=blue] (23) to (21);
		\draw [style=blue] (24) to (16);
		\draw [style=blue] (28) to (26);
		\draw [style=blue] (29) to (25);
		\draw [style=blue] (27) to (20);
	\end{pgfonlayer}
\end{tikzpicture}
    \caption{The forgetful mapping is not injective.}
    \label{fig:forget}
\end{figure}
%The surjectivity of the forgetful mapping remains an open question.
Now we define \emph{regular semi-upho posets} to be the semi-upho posets in $\mathbf{im}\mathfrak{F}$, and \emph{regular upho posets} to be the upho posets in $\mathbf{im}\mathfrak{F}$. Moreover, an upho function is said to be \emph{regular upho} if it is the rank-generating function of a regular upho poset.

By the correspondence established in \Cref{subsec:corresp}, on one hand, the properties of upho posets can be used to address enumeration problems in left-cancellative monoids. For instance, in an upho poset $P$, it is straightforward to show that $|P_k|=|P_{k+1}|$ implies $|P_n|=|P_k|$ for all $n\ge k$. Converting this fact into monoids, we then prove that in an LCH monoid $M$, $|W^M_k|=|W^M_{k+1}|$ implies $|W^M_n|=|W^M_k|$ for all $n\ge k$.

On the other hand, we can use monoids to construct a variety of well-defined upho posets and semi-upho posets, as illustrated in \Cref{eg:not N graded} and \Cref{eg:not finite type}. Furthermore, our proof of \Cref{thm:main} in \Cref{sec:4} is entirely based on this method.

\section{Totally Positive Upho Functions}\label{sec:4}
 In this section, we use \Cref{thm:working def of TP} to characterize total positivity, and we split our proof of \Cref{thm:main} into three parts. In \Cref{subsec:type I}, we address the case where the numerator is 1 and the denominator has two roots that are not less than 1. In \Cref{subsec:type II}, we address the case where the numerator is 1 and the denominator has only one root not less than 1. In \Cref{subsec:finally}, we prove the remaining parts of \Cref{thm:main}. 

\subsection{Type I Unitary Totally Positive Functions}\label{subsec:type I}
We first give a simple yet useful recast of semi-upho posets.
\begin{lemma}\label{lem:semi upho iff}
    A poset $P$ is semi-upho if and only if for every atom $s\in \mathcal{A}_P$, there exists an isoembedding $V_s\hookrightarrow P$. 
\end{lemma}
In the following text, we say a formal power series $g(x)=\sum b_ix^i$ is \emph{log-concave} if the coefficient sequence $\{b_i\}_{i=0}^{\infty}$ consists solely of nonnegative numbers and contains no internal zeros, moreover, ${b_{i+1}^2} \ge b_i b_{i+2}$ for every $i \in \N$. Using \Cref{lem:semi upho iff}, we have:
\begin{prop}\label{prop: log-concave rgf of semi-upho}
    Let $g(x)\in 1+x\Z_{\ge 0}[[x]]$ be a log-concave function, then there exists a tree-like semi-upho poset $Q$ whose rank-generating function equals $g(x)$.
\end{prop}
\begin{proof}[Sketch of proof]
    Given a log-concave function $g(x)=\sum_{i=0}^{\infty} b_ix^i, \text{ where } b_0=1$, we construct the semi-upho poset layer by layer. We construct the ($k+1$)-th layer from the first $k$ layers by first constructing a canonical maximum case, and then deleting points from right to left. It can be shown that $b_{k+1}^{max}\ge \frac{b_k^2}{b_{k-1}} \ge b_{k+1}$.
\end{proof}

\begin{example}
    Given $g(x)=1+3x^2+7x^3+13x^3+b_4^{max}x^4$, \Cref{fig:treesemi} is the Hasse diagram of the poset we construct in the procedure above.
\end{example}

We further use monoids to show that multiplying a regular upho function by the rank-generating function of a tree-like semi-upho poset yields a regular upho function.

\begin{prop}\label{prop: LCH monoid extension}
    Let $M_1=\langle \mathcal{I}_{M_1}\mid R_{M_1}\rangle$ be a finitely generated LCH monoid, where $R_{M_1}$ is its defining set of relations. Let $M_2=\langle \{0\}\cup \mathcal{I}_{M_2}\mid R_{M_2}\rangle$ be a finitely generated LCH $0$-monoid, where $R_{M_2}$ only has $0$-defining relations. We define $M:=\langle \mathcal{I}_{M_1}\cup \mathcal{I}_{M_2}\mid R_M\rangle$, where $R_M$ consists of the following relations:
    \vspace{-0.5ex}
    \begin{itemize}[itemsep=-0.5ex]
    \item $R_{M_1} \subseteq R_{M}$; \label{gen:case1}
    \item If $y_i \in \mathcal{I}_{M_2}, Y_j \in M_2$, and $y_i Y_j =0$ is in $R_{M_2}$, then $y_i Y_j =x_1 Y_j$ is in $R_{M}$;  \label{gen:case2}
    \item $y_i x_j =x_1 x_j \in R_{M}$ for all elements $x_j \in \mathcal{I}_{M_1}, y_i\in \mathcal{I}_{M_2}$. \label{gen:case3}
    \end{itemize}
    \vspace{-0.5ex}
    Then $M$ is a finitely generated LCH monoid. Moreover, $F_{\mathcal{P}(M)}=F_{\mathcal{P}(M_1)}F_{\mathcal{P}(M_2)}.$
\end{prop}

\Cref{color} depicts how to "convolve" a tree-like semi-upho poset and an upho poset. 

\begin{figure}[H]
\centering
\begin{tikzpicture}[scale=0.6]
	\begin{pgfonlayer}{nodelayer}
		\node [style=vert] (0) at (-1, 0) {};
		\node [style=vert] (1) at (-1, 1) {};
		\node [style=vert] (2) at (-1, 2) {};
		\node [style=vert] (3) at (-1, 3) {};
		\node [style=vert] (4) at (-1, 2) {};
		\node [style=label] (5) at (-1, 3.25) {};
		\node [style=label] (6) at (-1, 3.25) {.};
		\node [style=label] (7) at (-1, 3.5) {};
		\node [style=label] (8) at (-1, 3.75) {};
		\node [style=label] (9) at (-1, 3.5) {.};
		\node [style=label] (10) at (-1, 3.75) {.};
		\node [style=vert] (11) at (0.75, 0) {};
		\node [style=vert] (12) at (1.25, 1) {};
		\node [style=vert] (13) at (0, 2) {};
		\node [style=vert] (14) at (0.5, 2) {};
		\node [style=vert] (15) at (1, 2) {};
		\node [style=vert] (16) at (0.25, 1) {};
		\node [style=vert] (17) at (10.25, -1) {};
		\node [style=vert] (18) at (8.25, 0) {};
		\node [style=vert] (19) at (6.25, 1) {};
		\node [style=vert] (20) at (4.25, 2) {};
		\node [style=vert] (21) at (2.25, 3) {};
		\node [style=vert] (22) at (9.75, 0) {};
		\node [style=vert] (23) at (10.75, 0) {};
		\node [style=vert] (24) at (9.5, 1) {};
		\node [style=vert] (25) at (10, 1) {};
		\node [style=vert] (26) at (10.5, 1) {};
		\node [style=vert] (27) at (7.75, 1) {};
		\node [style=vert] (28) at (8.75, 1) {};
		\node [style=vert] (29) at (7.5, 2) {};
		\node [style=vert] (30) at (8, 2) {};
		\node [style=vert] (31) at (8.5, 2) {};
		\node [style=vert] (32) at (5.75, 2) {};
		\node [style=vert] (33) at (6.75, 2) {};
		\node [style=vert] (34) at (5.5, 3) {};
		\node [style=vert] (35) at (6, 3) {};
		\node [style=vert] (36) at (6.5, 3) {};
		\node [style=vert] (37) at (3.75, 3) {};
		\node [style=vert] (38) at (4.75, 3) {};
		\node [style=none] (44) at (11.75, -1) {1};
		\node [style=none] (45) at (11.75, 0) {3};
		\node [style=none] (46) at (11.75, 1) {6};
		\node [style=none] (47) at (11.75, 2) {6};
		\node [style=none] (48) at (11.75, 3) {6};
		\node [style=none] (52) at (11.75, 3.5) {.};
		\node [style=none] (53) at (11.75, 3.75) {.};
		\node [style=none] (54) at (11.75, 4) {.};
		\node [style=vert] (55) at (21.25, -1) {};
		\node [style=vert] (56) at (19.25, 0) {};
		\node [style=vert] (57) at (17.25, 1) {};
		\node [style=vert] (58) at (15.25, 2) {};
		\node [style=vert] (59) at (13.25, 3) {};
		\node [style=vert] (60) at (20.75, 0) {};
		\node [style=vert] (61) at (21.75, 0) {};
		\node [style=vert] (62) at (20.5, 1) {};
		\node [style=vert] (63) at (21, 1) {};
		\node [style=vert] (64) at (21.5, 1) {};
		\node [style=vert] (65) at (18.75, 1) {};
		\node [style=vert] (66) at (19.75, 1) {};
		\node [style=vert] (67) at (18.5, 2) {};
		\node [style=vert] (68) at (19, 2) {};
		\node [style=vert] (69) at (19.5, 2) {};
		\node [style=vert] (70) at (16.75, 2) {};
		\node [style=vert] (71) at (17.75, 2) {};
		\node [style=vert] (72) at (16.5, 3) {};
		\node [style=vert] (73) at (17, 3) {};
		\node [style=vert] (74) at (17.5, 3) {};
		\node [style=vert] (75) at (14.75, 3) {};
		\node [style=vert] (76) at (15.75, 3) {};
		\node [style=none] (82) at (22.75, -1) {1};
		\node [style=none] (83) at (22.75, 0) {3};
		\node [style=none] (84) at (22.75, 1) {6};
		\node [style=none] (85) at (22.75, 2) {6};
		\node [style=none] (86) at (22.75, 3) {6};
		\node [style=none] (90) at (22.75, 3.5) {.};
		\node [style=none] (91) at (22.75, 3.75) {.};
		\node [style=none] (92) at (22.75, 4) {.};
		\node [style=none] (93) at (-1, -1.5) {$P$};
		\node [style=none] (94) at (0.75, -1.5) {$S$};
		\node [style=none] (96) at (21.25, -1.5) {$R$};
	\end{pgfonlayer}
	\begin{pgfonlayer}{edgelayer}
		\draw (3) to (4);
		\draw (4) to (1);
		\draw (1) to (0);
		\draw [style=red] (13) to (16);
		\draw [style=red] (16) to (11);
		\draw [style=red] (15) to (12);
		\draw [style=blue] (14) to (16);
		\draw [style=blue] (12) to (11);
		\draw (21) to (20);
		\draw (20) to (19);
		\draw (19) to (18);
		\draw (18) to (17);
		\draw [style=red] (22) to (17);
		\draw [style=red] (24) to (22);
		\draw [style=red] (26) to (23);
		\draw [style=red] (29) to (27);
		\draw [style=red] (27) to (18);
		\draw [style=red] (31) to (28);
		\draw [style=red] (32) to (19);
		\draw [style=red] (34) to (32);
		\draw [style=red] (36) to (33);
		\draw [style=red] (37) to (20);
		\draw [style=blue] (38) to (20);
		\draw [style=blue] (33) to (19);
		\draw [style=blue] (35) to (32);
		\draw [style=blue] (28) to (18);
		\draw [style=blue] (30) to (27);
		\draw [style=blue] (23) to (17);
		\draw [style=blue] (25) to (22);
		\draw (59) to (58);
		\draw (58) to (57);
		\draw (57) to (56);
		\draw (56) to (55);
		\draw [style=red] (60) to (55);
		\draw [style=red] (62) to (60);
		\draw [style=red] (64) to (61);
		\draw [style=red] (67) to (65);
		\draw [style=red] (65) to (56);
		\draw [style=red] (69) to (66);
		\draw [style=red] (70) to (57);
		\draw [style=red] (72) to (70);
		\draw [style=red] (74) to (71);
		\draw [style=red] (75) to (58);
		\draw [style=blue] (76) to (58);
		\draw [style=blue] (71) to (57);
		\draw [style=blue] (73) to (70);
		\draw [style=blue] (66) to (56);
		\draw [style=blue] (68) to (65);
		\draw [style=blue] (61) to (55);
		\draw [style=blue] (63) to (60);
		\draw (57) to (60);
		\draw (57) to (61);
		\draw [style=blue] (66) to (61);
		\draw (58) to (65);
		\draw (58) to (66);
		\draw (58) to (62);
		\draw (58) to (63);
		\draw (58) to (64);
		\draw (59) to (70);
		\draw (59) to (71);
		\draw (59) to (67);
		\draw (59) to (68);
		\draw (59) to (69);
		\draw [style=red] (62) to (67);
		\draw [style=red] (64) to (67);
		\draw [style=red] (67) to (72);
		\draw [style=red] (69) to (72);
		\draw [style=blue] (63) to (71);
		\draw [style=blue] (66) to (71);
		\draw [style=blue] (68) to (62);
		\draw [style=blue] (64) to (68);
		\draw [style=blue] (76) to (71);
		\draw [style=blue] (68) to (76);
		\draw [style=blue] (73) to (67);
		\draw [style=blue] (69) to (73);
	\end{pgfonlayer}
\end{tikzpicture}
\caption{Construction of an upho poset $R$ by "convolving" a regular upho poset $P$ and a tree-like semi-upho poset $S$. }
\label{color}
\end{figure}

Rewriting \Cref{prop: LCH monoid extension} in terms of formal power series yields the following result:

\begin{thm}\label{thm:upho times semi-upho}
        Let $f(x)\in 1+x\Z_{\ge 0}[[x]]$ be regular upho and $g(x)\in 1+x\Z_{\ge 0}[[x]]$ be the rank-generating function of a tree-like semi-upho poset, then $f(x)g(x)$ is regular upho. 
\end{thm}   

By employing \Cref{prop: log-concave rgf of semi-upho} and \Cref{thm:upho times semi-upho}, we obtain the following corollary:
\begin{cor}\label{cor:upho times log concave}
    Let $f(x)\in 1+x\Z_{\ge 0}[[x]]$ be regular upho and $g(x)\in 1+x\Z_{\ge 0}[[x]]$ be log-concave, then $f(x)g(x)$ is regular upho.
\end{cor}

Notice that multiplication preserves log-concavity \cite[Proposition 2]{MR1110850}, hence we have:

\begin{prop}\label{thm:type I}
    If a formal power series $f(x)\in 1+x\mathbb{Z}_{\ge 0}[[x]]$ is of type I, that is: \[f(x)=\frac{1}{h(x)}=\prod\limits_{i=1}^{n}\frac{1}{(1-\lambda_i x)}, \ 0<\lambda_1\le\lambda_2\le\cdots\le\lambda_n,\]where $h(x)$ is irreducible over $\mathbb{Z}[X]$, $\deg h(x)\ge 2$, and $1\le \lambda_{n-1}\le\lambda_{n} $, then $f(x)$ is a regular upho function.
\end{prop}
\begin{proof}
    Note that $\frac{1}{1-\lambda_i x}\text{ for } 1\le i\le n-2$ and $\frac{1-x}{(1-\lambda_{n-1} x)(1-\lambda_n x)}$ are log-concave, and $\frac{1}{1-x}$ is a regular upho function, so by \Cref{lemma:produpho} and \Cref{cor:upho times log concave}, $f(x)$ is an upho function.
\end{proof}


\subsection{Type II Unitary Totally Positive Functions}\label{subsec:type II}
In this subsection, we consider formal power series $f(x)\in 1+x\mathbb{Z}_{\ge 0}[[x]]$ of type II: \[f(x)=\frac{1}{h(x)}=\frac{1}{1+\sum_{i=1}^{\infty}h_ix^i}=\prod\limits_{i=1}^{n}\frac{1}{(1-\lambda_i x)}=1+\sum\limits_{i=1}^{\infty}c_ix^i, \ 0<\lambda_1\le\lambda_2\le\cdots\le\lambda_n,\]where $h(x)$ is irreducible over $\mathbb{Z}[X]$, $\deg h(x)\ge2$, and $\lambda_{n-1},\lambda_{n}$ satisfies $\lambda_{n-1}<1\le\lambda_{n} $. We prove that $f(x)$ of type II is regular upho by explicitly constructing an LCH monoid whose rank-generating function equals $f(x)$. A technical lemma we use is:

\begin{lemma} \label{lem: c_i eq2}
    There exist $l_i \in \Z$ for $1\le i\le n$ with $l_1\ge l_2\ge\cdots l_n \ge 0$ such that
    \[c_i=
    \begin{pmatrix}
    1&1&1&\cdots&1
    \end{pmatrix}
    \begin{pmatrix}
    l_1 & l_2 & l_3 & \cdots& l_n\\
    1&1&0&\cdots&0\\
    1&1&1&\cdots&0\\
    \vdots&\vdots&\vdots&\ddots&\vdots\\
    1&1&1&\cdots&1
    \end{pmatrix}^i
    \begin{pmatrix}
        1\\
        0\\
        0\\
        \vdots\\
        0
    \end{pmatrix}.\]
\end{lemma}

\begin{example}
For $n=5$, we have $l_1= h_1 -4\text{, } l_2= h_1 -h_5 -4\text{, } l_3= h_1 -h_4 +3h_5 -3\text{, } l_4= h_1 -h_3 +2h_4 -3h_5 -2\text{ and } l_5=h_1 -h_2 +h_3 -h_4 +h_5 -1.$

\end{example}

\begin{prop}\label{thm:type II}
A formal power series $f(x)$ of type II is a regular upho function.
\end{prop}
\begin{proof}[Sketch of proof]
    Let $M$ be a monoid generated by $x_i^j, 1\le j\le n, 1\le i\le r_j$, where $r_1=l_1$ and $r_i=1$ for $i>1$. And we let the defining relations of $M$ be:
    $$\begin{aligned}
    &x^j_1x^1_{k}=x_1^1x^1_{k}, \quad2\le j\le n, 1\le k\le l_1-l_j; \\
    &x^j_1x^i_1=x^1_1x^i_1,\quad 2\le i<j\le n.
    \end{aligned}
    $$
    By \Cref{prop: LCH monoid extension} and \Cref{lem: c_i eq2}, we then prove that $M$ is a well-defined LCH monoid and it rank-generating function equals $f(x)$.
\end{proof}
\subsection{Total Positivity Implies Upho}\label{subsec:finally}

In this subsection, we use the results obtained earlier to prove \Cref{thm:main} and \Cref{conj:Gao1}.

We first divide the totally positive functions into the "denominator part" and the "numerator part" using \Cref{thm:working def of TP}. The result on the "denominator part" can be obtained directly from combining \Cref{lemma:produpho}, \Cref{thm:type I}, \Cref{thm:type II}, and the fact that $\frac{1}{1-nx}$ is a regular upho function for all $n\in \N$. 
\begin{prop}\label{prop:1-numeratorallcases}
    If a formal power series $f(x)\in 1+x\mathbb{Z}_{\ge 0}[[x]]$ is of the form $f(x)=\frac{1}{h(x)}$, where all the complex roots of $h(x) \in 1+x\mathbb{Z}_{\ge 0}[x]$ are real and positive, then $f(x)$ is regular upho.
\end{prop}
To deal with the "numerator part", we just need to use the lemma below.
\begin{lemma}\label{lemma: numerator g(x)}
    $g(x) \in 1+x\mathbb{Z}[x]$ is log-concave if all its complex roots are real and negative.
\end{lemma}
\begin{proof}[Proof of \Cref{thm:main}]
Combine \Cref{cor:upho times log concave}, \Cref{thm:working def of TP}, \Cref{prop:1-numeratorallcases}, and \Cref{lemma: numerator g(x)}.
\end{proof}

Before proving \Cref{conj:Gao1}, we state the Thoma--Kerov--Vershik theorem as follows.

\begin{thm}[\cite{Borodin_Olshanski_2016}]\label{thm: totally positive form}
    A formal power series $f(x)\in 1+x\Z_{\ge 0}[[x]]$ is totally positive if and only if $f(t_1)f(t_2)\cdots$ is Schur positive.
\end{thm}


\begin{proof}[Proof of \Cref{conj:Gao1}]
For a finite type $\N$-graded upho poset $P$, according to \cite[Lemma 2.2]{MR4318812}, the Ehrenborg quasi-symmetric function $E_P(x_1, x_2, \dots) = \prod_{i=1}^{\infty}F_P(x_i)$. Combining \Cref{thm:main} and \Cref{thm: totally positive form}, the proof of \Cref{conj:Gao1} is completed.
\end{proof}

    \vspace{-3ex}

%% if you use biblatex then this generates the bibliography
%% if you use some other method then remove this and do it your own way

\acknowledgements{
This research was conducted as part of the PACE program during the summer of 2023 at Peking University. We thank the program and the university for providing an academically enriching environment. Our gratitude extends to Prof. Yibo Gao for proposing the project and to Yumou Fei, Samuel F. Hopkins, and Joel B. Lewis for engaging in valuable discussions. Additionally, we would like to extend our sincere thanks to the anonymous reviewers for their insightful comments and suggestions, which have significantly improved the quality of this paper.
}

\printbibliography

\end{document}